使用 Pyqt5 製作猜數遊戲 GUI

這一節,我們介紹如何使用 Pyqt5 實現猜數遊戲界面。

遊戲效果圖:

使用 Pyqt5 製作猜數遊戲 GUI

一、使用 Qt Designer

首先,選擇 Pycharm ->File->Settings-> Tools->External Tools,點擊 + ,添加新項目。name 可以設為 'qt5',Program 那項填寫Qt designer 這個 exe 文件所在的位置。

使用 Pyqt5 製作猜數遊戲 GUI

這時候,Tools 菜單欄就會出現 External Tools 工具欄,點擊這一項,就可以啟動 Qt designer。

二、Pyuic

同樣,選擇 Pycharm ->File->Settings-> Tools->External Tools,點擊 + ,添加新項目。name 可以設為Pyuic, Program 那項填寫你的python.exe文件所在的地址。Arguments 那項填寫-m PyQt5.uic.pyuic sample.ui -o sample.py。其中sample.ui為你需要轉換的ui文件,sample.py為轉化得到的py文件名。Working directory 填寫 sample.ui在磁盤中的地址,我選擇的位置是D:\QQPCMgr\Desktop\Pyui,這同時也是轉化後的sample.py文件保存的地址。

使用 Pyqt5 製作猜數遊戲 GUI

轉換得到的 py 文件可以直接繼承使用。

三、製作 ui 文件

我們打開 Designer,選擇相應控件,將其拖到合適的位置,保存即可 ui 文件。

這裡,我選擇垂直佈局,從上到下分別為 QLineEdit、QLabel、QLabel、QPushButton、QPushButton、QPushButton。其中,標籤名默認為空字符串,三個按鈕的文字分別為:確認、退出遊戲、重新開始。

這樣,我們就完成猜數遊戲的界面製作了,接下來將控件與功能對應起來即可。

使用 Pyqt5 製作猜數遊戲 GUI

通過 Pyuic 轉化得到的 py 文件代碼如下:

使用 Pyqt5 製作猜數遊戲 GUI

然後,我們讓主程序繼承這個基類,即可得到遊戲界面。

四、實現猜數遊戲

代碼結構如下:

使用 Pyqt5 製作猜數遊戲 GUI

1. 初始化

第一行的列表推導式,用於生成隨機數的右界,並賦值給類變量 random_choice。

前兩行代碼用於繼承父類的 __init__ 參數,並執行 self.setupUi() 函數。其次,初始化實例變量。接著調用 self.random_num(),為以上的實例變量賦值。最後,調用 self.initUi() 函數來初始化界面。初始化的界面,會提示猜數範圍。

使用 Pyqt5 製作猜數遊戲 GUI

2. 生成隨機數

init_range() 函數為提示範圍的左右界賦值, _random_range() 函數隨機產生隨機數的右界,而 random_num() 用來產生最終的隨機數以及提示範圍。

使用 Pyqt5 製作猜數遊戲 GUI

3. 初始化界面

self.label.setText() 顯示標籤的文本內容,標籤一初始顯示提示範圍。self.pushButton.clicked.connect() 是說,當你摁下按鈕一,會運行 self.guess() 函數。同理,按鈕二、按鈕三分別對應退出和重置功能。

使用 Pyqt5 製作猜數遊戲 GUI

4. 主程序

text 用來接收 lineEdit 中的文本內容,允許浮點型的字符串。其他類型字符串會提示錯誤,標籤一提示輸入不合法,標籤二提示隨機數的範圍,並清空 lineEdit 的文本框,將 text 賦值為空字符串。

如果字符串不為空,繼續執行接下來的程序。首先,將得到的浮點數進行向下取整操作(math.floor)。比較用戶輸入的數值與待猜數,如果待猜數大於用戶輸入的數值,說明用戶猜小了。此時,如果用戶輸入數值大於提示範圍的左界,就更新提示範圍的左界為用戶輸入的數值。此時標籤一顯示提示範圍,標籤二顯示“猜小了”。如果待猜數小於用戶輸入的數值,說明用戶猜大了,執行相反的操作。如果待猜數與用戶輸入的數值相同,那麼說明用戶猜中了數字。QMessageBox.question() 函數用來顯示對話框,QMessageBox.Yes 參數是 Yes 鍵,並提示用戶猜中的數值。

使用 Pyqt5 製作猜數遊戲 GUI

使用 Pyqt5 製作猜數遊戲 GUI

5. 重置遊戲

reset() 函數,用來重置遊戲。首先將實例變量設為 None,並執行 self.random_num(),產生隨機數,並更新提示範圍的左右界。接著清空標籤一和標籤二的文本內容。最後,初始化界面,並顯示待猜數範圍。

使用 Pyqt5 製作猜數遊戲 GUI

6. 設置快捷鍵

Qt.Key_Return 代表 Enter 鍵,按下 Enter 鍵就相當於按下按鈕一,即確認鍵。Qt.Key_Escape 相當於 Esc 鍵,按下該鍵,就會退出遊戲。Qt.Key_R 相當於 Ctrl + R 鍵,用來重置遊戲。

使用 Pyqt5 製作猜數遊戲 GUI

以上便是本節的全部內容,主要介紹瞭如何使用 Pyqt5 實現猜數遊戲界面。如果需要獲取源代碼,請關注微信公眾號:Python高效編程,在微信後臺回覆猜數即可。


分享到:


相關文章: