日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PyQt5GUI快速编程学习

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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快速编程学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。