python與QT聯(lián)合的詳細(xì)步驟記錄
一、文章簡(jiǎn)介
python適合做一些后臺(tái)處理的相關(guān)任務(wù)、但再實(shí)際應(yīng)用過(guò)程中往往需要搭配一個(gè)GUI圖形化界面共同使用。在python中含有pyqt庫(kù),通過(guò)pyqt庫(kù)的調(diào)用可以實(shí)現(xiàn)GUI界面的功能,但是在使用pyqt5構(gòu)建GUI的過(guò)程中對(duì)界面組件的布局往往需要通過(guò)函數(shù)進(jìn)行設(shè)置,博主再使用過(guò)程中感到非常麻煩與不便,因此決定使用通過(guò)python調(diào)用QT的.ui文件,通過(guò).ui文件進(jìn)行設(shè)置GUI組件布局,使用python進(jìn)行數(shù)據(jù)的處理與函數(shù)邏輯的編寫(xiě)。
優(yōu)點(diǎn):QT Designer設(shè)計(jì)GUI布局美觀、便利,python編程簡(jiǎn)易。
前置:python(或pycharm)、QT(Qt Creator 或Qt Designer)
二、安裝pyqt5
pip install PyQt5
雖然博主使用QT進(jìn)行GUI頁(yè)面的構(gòu)建,但是內(nèi)部的一些邏輯采用python進(jìn)行編寫(xiě),因此仍然需要使用pyqt5。(有人可能會(huì)說(shuō)“既然還是需要下載pyqt5,為什么不直接使用pyqt5”,還是上面的話,QT設(shè)計(jì)GUI布局美觀,在ui文件中使用拖拽的方式更加直觀了解成型的GUI界面情況,便于調(diào)整)
三、GUI頁(yè)面設(shè)計(jì)
使用Qt Designer創(chuàng)建一個(gè)窗口,并添加一些組件。(本文僅作為基礎(chǔ)因此進(jìn)行簡(jiǎn)易的設(shè)計(jì))
四、python的使用
python文件創(chuàng)建
在test1.ui文件夾內(nèi)創(chuàng)建.py文件(便于后續(xù)調(diào)用)。
python程序的編寫(xiě)
import sys from PyQt5 import uic from PyQt5.QtWidgets import * #上述為需要調(diào)的庫(kù) class MainWindow(QWidget): #初始化函數(shù) def __init__(self): super(MainWindow, self).__init__() self.init_ui()#ui窗口文件 self.i = 0 #點(diǎn)擊次數(shù) def init_ui(self): self.Firstui = uic.loadUi("test1.ui")#首先讀取.ui文件 self.push = self.Firstui.pushButton#將ui中的賦值 self.label = self.Firstui.label_2 #按鍵的按下信號(hào)槽 self.push.clicked.connect(self.on_push) #按鍵的槽函數(shù) def on_push(self, index): self.i=self.i+1 self.label.setText("點(diǎn)擊第"+str(self.i)+"次") if __name__ == '__main__': app = QApplication(sys.argv) Window = MainWindow() Window.Firstui.show() app.exec_()
五、多窗口的應(yīng)用
GUI設(shè)計(jì)
python編程
import sys from PyQt5 import uic from PyQt5.QtWidgets import * #上述為需要調(diào)的庫(kù) class MainWindow(QWidget): #初始化函數(shù) def __init__(self): super(MainWindow, self).__init__() self.init_ui()#ui窗口文件 self.i = 0 #點(diǎn)擊次數(shù) def init_ui(self): self.Firstui = uic.loadUi("test1.ui")#首先讀取.ui文件 self.push = self.Firstui.pushButton#將ui中的賦值 self.push_2 = self.Firstui.pushButton_2 self.label = self.Firstui.label_2 # 將ui中的賦值 #按鍵的按下信號(hào)槽 self.push.clicked.connect(self.on_push) self.push_2.clicked.connect(self.on_push2) #按鍵的槽函數(shù) def on_push(self, index): self.i=self.i+1 self.label.setText("點(diǎn)擊第"+str(self.i)+"次") def on_push2(self, index): self.Firstui.close() Window2.Firstui.show() class MainWindow2(QWidget): #初始化函數(shù) def __init__(self): super(MainWindow2, self).__init__() self.init_ui()#ui窗口文件 def init_ui(self): self.Firstui = uic.loadUi("test2.ui")#首先讀取.ui文件 if __name__ == '__main__': app = QApplication(sys.argv) Window = MainWindow() Window2 = MainWindow2() Window.Firstui.show() app.exec_()
與一個(gè)窗口的區(qū)別在于當(dāng)觸發(fā)特定按鍵時(shí)利用.close()關(guān)閉當(dāng)前窗口同時(shí)使用.show對(duì)實(shí)例化的窗口對(duì)象進(jìn)行.shou()打開(kāi)。值得注意的是 .Firstui代表窗口,調(diào)用其他窗口是要使用類(lèi)名.Firstui進(jìn)行調(diào)用。
因?yàn)楸疚尼槍?duì)的是如何使用python調(diào)用QT的教程,因此對(duì)QT中一些其他的信號(hào)、組件及更多GUI界面的操作不做過(guò)多介紹。
總結(jié)
到此這篇關(guān)于python與QT聯(lián)合的文章就介紹到這了,更多相關(guān)python與QT聯(lián)合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django js實(shí)現(xiàn)部分頁(yè)面刷新的示例代碼
今天小編就為大家分享一篇django js實(shí)現(xiàn)部分頁(yè)面刷新的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05基于Python實(shí)現(xiàn)文本文件轉(zhuǎn)Excel
Excel文件是我們常用的一種文件,在工作中使用非常頻繁。Excel中有許多強(qiáng)大工具,因此用Excel來(lái)處理文件會(huì)給我們帶來(lái)很多便捷。本文就來(lái)和大家分享一下Python實(shí)現(xiàn)文本文件轉(zhuǎn)Excel的方法,感興趣的可以了解一下2022-08-08pytorch+sklearn實(shí)現(xiàn)數(shù)據(jù)加載的流程
這篇文章主要介紹了pytorch+sklearn實(shí)現(xiàn)數(shù)據(jù)加載,之前在訓(xùn)練網(wǎng)絡(luò)的時(shí)候加載數(shù)據(jù)都是稀里糊涂的放進(jìn)去的,也沒(méi)有理清楚里面的流程,今天整理一下,加深理解,也方便以后查閱,需要的朋友可以參考下2022-11-11Python實(shí)現(xiàn)奇數(shù)列與偶數(shù)列調(diào)換的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)df的奇數(shù)列與偶數(shù)列調(diào)換位置,比如A列,B列,調(diào)換成B列,A列,感興趣的小伙伴可以了解一下2022-05-05學(xué)習(xí)Python selenium自動(dòng)化網(wǎng)頁(yè)抓取器
本篇文章給大家介紹了Python selenium自動(dòng)化網(wǎng)頁(yè)抓取器的實(shí)例應(yīng)用以及知識(shí)點(diǎn)分析,有需要的參考學(xué)習(xí)下。2018-01-01python自動(dòng)化UI工具發(fā)送QQ消息的實(shí)例
今天小編就為大家分享一篇python自動(dòng)化UI工具發(fā)送QQ消息的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08