PyQt5GUI快速编程学习
先說個比較坑的地方,這個書用的PyQt4+Python2寫的,現在的都是PyQt5+Python3.這個書的代碼下下來是不能直接用的,很多時候改寫了,運行Form.show()后一閃就死了,Process finished with exit code 3 。其實就是里面許多老的方法新的不支持了。找到一個博客,把源碼全改寫了:PyQt5_basisworker_新浪博客?
?http://blog.sina.com.cn/s/articlelist_3257808393_14_1.html
第一部分: ?前面和GUI編程沒有直接關系,看了一下:
1、類編程: ?__init__ ?,類的初始化函數。?
2、動態函數和偏函數。大概看了一下。以前沒怎么接觸。還是比較有用的。
第二部分:GUI編程
1、信號和槽(signals and slots):默認的信號和槽。
使用《PYTHON QT GUI快速編程 PYQT編程指南》的例子,但是現在用的是Python3.5+PyQt5,原來的例子都不能直接用,舉例來說?信號和槽的就改造了一下(標紅的)
import sys from PyQt5.QtWidgets import (QApplication,QDialog,QSpinBox,QDial,QHBoxLayout) class Form(QDialog):def __init__(self,parent = None):super(Form,self).__init__(parent)dial = QDial()dial.setNotchesVisible(True)spinbox =QSpinBox()layout = QHBoxLayout()layout.addWidget(dial)layout.addWidget(spinbox)self.setLayout(layout) dial.valueChanged.connect(spinbox.setValue) # valueChanged 是Native signal ,不用加(int)spinbox.valueChanged.connect( dial.setValue)self.setWindowTitle("signals and slots") if __name__ == '__main__':app = QApplication(sys.argv)ex1 = Form()ex1.show()sys.exit(app.exec_())2、對話框
簡易、標準對話框用模態;智能對話框一般用非模態。
對話框和組件的一個很重要作用:輸入數據的驗證。
對話框的常用方法:
d.accept() ? ? d.reject() ?
d.exec_() ? modal
d.show() ? modaless
3、布局
4、利用QtDesginer來編輯
畢竟自己編輯界面太麻煩。還是用圖形化的編輯界面方便。至于里面的信號和槽的關聯和處理,這個鏈接說的還是比較好的:“基于QTdesigner的PyQt編程 - 簡書,https://www.jianshu.com/p/962b572a216c ”“關于Qt的操作簡單會幾個比較常用而且典型的,如果需要深入那就需要就去查閱相關手冊文檔。對于這類工具基本就是夠用就行,并不是我的主業”
對于自己的處理方式,其實還是一種不太符合事件處理的方式,而是一個個簡單的函數處理方式來操作。
UI轉譯后的一段調用代碼:
import MyQtTest,sys from PyQt5.QtWidgets import QWidget,QMainWindow,QApplication class CoperQt(QMainWindow,MyQtTest.Ui_MainWindow):def __init__(self):QMainWindow.__init__(self) MyQtTest.Ui_MainWindow.__init__(self) self.setupUi(self)
if __name__ == '__main__': app = QApplication(sys.argv) ex = CoperQt() ex.show() sys.exit(app.exec_())
作為簡單應用,還需要學習的后續的三個課題簡單使用:
? 數據庫的鏈接處理;簡單的通信處理;多線程處理。
總結
以上是生活随笔為你收集整理的PyQt5GUI快速编程学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python:监控微信群里的消息,并根据
- 下一篇: iOS自定义相机