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