最近幾個項目的界面都使用了 pyqt 庫,好比商城中的抽獎機器人,新手指引機器人等,在這裏不得不誇一下 Pyqt 的強大與優美:
因爲在此項目以前,我也沒有用過 qt,項目開發過程當中學習了不少知識也遇到了很多問題,不少到如今也只是只知其一;不知其二,在此記錄下我遇到的問題和個人解決方法。
剛開始的界面設計,我也是根據教程使用 QtDesigner 和 PyUIC 生成界面代碼,這應該是個不錯的選擇,但我真的手殘用不來,因而轉而本身寫代碼,感受更好處理。python
其餘用到的函數:app
爲按鈕添加點擊事件,按鈕被點擊時執行對應函數,函數不加括號。less
pushButton.clicked.connect(self.function)
本覺得實現這一功能不會很難,結果發現本身想的有些簡單,最後用了一個看似解決了這個問題的簡單方法:建立 jump.py 文件將其做爲主文件,建立按鈕點擊事件實現不一樣窗口的顯示 .show()與隱藏 .hide() 。
如:
ide
from windowA import * from windowB import * from windowC import * app = QApplication(sys.argv) wa = windowA() wb = windowB() wc = windowC() wa.mainWnd.show() def eventA(): wb.mainWnd.show() wa.mainWnd.hide() def eventB(): wc.mainWnd.show() wb.mainWnd.hide() wa.pushButton.clicked.connect(eventA) wb.pushButton.clicked.connect(eventB) if __name__ == "__main__": app.aboutToQuit.connect(app.deleteLater) app.exit(app.exec_())
說不上美化,只是對界面的佈局等進行一些改變。函數
addStretch() : 使一個部件向上(或左)對齊後每每沒法另下一個向下(或右)對齊,此時需在這之間添加 Stretch;佈局
如:
學習
self.button.setStyleSheet('color:rgb(52,196,243,200);border-radius:25px;border:4px solid rgb(52,196,243);background:#D2E9FF;') # RGB第四位表示透明度,0~255 self.label.setStyleSheet('color:CornflowerBlue;background-image:url(1.jpg);border-bottom-left-radius:20px') # 只設置左下邊界圓角
界面風格不合我心意,因而隱藏邊框、設置背景透明,自定義標題欄;字體
如:ui
label.setText('<font size="30" face="Microsoft Yahei" ><b style="color:rgb(52,196,243)">WubbaLubba</b></font><h6>'+ "DubDub")
免費下載試用:https://support.i-search.com.cn/url