python使用PyQt5的簡單方法
一:安裝PyQt5
pip install pyqt5
二:PyQt5簡單使用
1:使用PyQt5創(chuàng)建一個(gè)簡單窗口
import sys from PyQt5 import QtWidgets #創(chuàng)建一個(gè)應(yīng)用(Application)對象,sys.argv參數(shù)是一個(gè)來自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類 windows = QtWidgets.QWidget() #設(shè)置widget組件的大小(w,h) windows.resize(500,500) #設(shè)置widget組件的位置(x,y) windows.move(100,100) """ #設(shè)置widget組件的位置居中 qr = windows.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) windows.move(qr.topLeft()) """ #等同于 w.resize(500,500)和w.move(100,100)兩句結(jié)合,(x,y,w,h) #windows.setGeometry(100,100,500,500) #show()方法在屏幕上顯示出widget組件 windows.show() #循環(huán)執(zhí)行窗口觸發(fā)事件,結(jié)束后不留垃圾的退出,不添加的話新建的widget組件就會(huì)一閃而過 sys.exit(app.exec_())
現(xiàn)象如下:
2:給創(chuàng)建的窗口添加標(biāo)題和圖標(biāo)
import sys from PyQt5 import QtWidgets,QtGui #創(chuàng)建一個(gè)應(yīng)用(Application)對象,sys.argv參數(shù)是一個(gè)來自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類 windows = QtWidgets.QWidget() #設(shè)置widget組件的大小(w,h) windows.resize(500,500) #設(shè)置widget組件的位置(x,y) windows.move(100,100) """ #設(shè)置widget組件的位置居中 qr = windows.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) windows.move(qr.topLeft()) """ #等同于 w.resize(500,500)和w.move(100,100)兩句結(jié)合,(x,y,w,h) #windows.setGeometry(100,100,500,500) #給widget組件設(shè)置標(biāo)題 windows.setWindowTitle('標(biāo)題') #給widget組件設(shè)置圖標(biāo) windows.setWindowIcon(QtGui.QIcon('2.png')) #show()方法在屏幕上顯示出widget組件 windows.show() #循環(huán)執(zhí)行窗口觸發(fā)事件,結(jié)束后不留垃圾的退出,不添加的話新建的widget組件就會(huì)一閃而過 sys.exit(app.exec_())
現(xiàn)象如下:
3:給創(chuàng)建的窗口設(shè)置按鈕及設(shè)置提示語
import sys from PyQt5 import QtWidgets,QtGui #創(chuàng)建一個(gè)應(yīng)用(Application)對象,sys.argv參數(shù)是一個(gè)來自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類 windows = QtWidgets.QWidget() #設(shè)置widget組件的大小(w,h) windows.resize(500,500) #設(shè)置widget組件的位置(x,y) windows.move(100,100) """ #設(shè)置widget組件的位置居中 qr = windows.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) windows.move(qr.topLeft()) """ #等同于 w.resize(500,500)和w.move(100,100)兩句結(jié)合,(x,y,w,h) #windows.setGeometry(100,100,500,500) #給widget組件設(shè)置標(biāo)題 windows.setWindowTitle('標(biāo)題') #給widget組件設(shè)置圖標(biāo) windows.setWindowIcon(QtGui.QIcon('2.png')) #設(shè)置提示語的字體和大小 QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif', 10)) #給widget組件設(shè)置提示語 windows.setToolTip('這是窗口提示') #設(shè)置按鈕并給按鈕命名 btn = QtWidgets.QPushButton('button',windows) #給按鈕設(shè)置位置(x,y,w,h) btn.setGeometry(200,200,100,50) #給按鈕設(shè)置提示語 btn.setToolTip('這是按鈕提示') #設(shè)置按鈕樣式 btn.setStyleSheet("background-color: rgb(164, 185, 255);" "border-color: rgb(170, 150, 163);" "font: 75 12pt \"Arial Narrow\";" "color: rgb(126, 255, 46);") #點(diǎn)擊按鈕關(guān)閉創(chuàng)建的窗口 btn.clicked.connect(QtCore.QCoreApplication.instance().quit) #show()方法在屏幕上顯示出widget組件 windows.show() #循環(huán)執(zhí)行窗口觸發(fā)事件,結(jié)束后不留垃圾的退出,不添加的話新建的widget組件就會(huì)一閃而過 sys.exit(app.exec_())
現(xiàn)象如下(點(diǎn)擊button按鈕,窗口關(guān)閉):
4:設(shè)置標(biāo)簽(lable)信息
import sys from PyQt5 import QtWidgets,QtGui,QtCore #創(chuàng)建一個(gè)應(yīng)用(Application)對象,sys.argv參數(shù)是一個(gè)來自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類 windows = QtWidgets.QWidget() #設(shè)置widget組件的大小(w,h) windows.resize(500,500) #設(shè)置widget組件的位置(x,y) windows.move(100,100) """ #設(shè)置widget組件的位置居中 qr = windows.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) windows.move(qr.topLeft()) """ #等同于 w.resize(500,500)和w.move(100,100)兩句結(jié)合,(x,y,w,h) #windows.setGeometry(100,100,500,500) #給widget組件設(shè)置標(biāo)題 windows.setWindowTitle('標(biāo)題') #給widget組件設(shè)置圖標(biāo) windows.setWindowIcon(QtGui.QIcon('2.png')) #設(shè)置lable信息 label = QtWidgets.QLabel(windows) label.setGeometry(QtCore.QRect(100, 10, 100, 60)) label.setText('這是lable信息') label.setObjectName('label') #show()方法在屏幕上顯示出widget組件 windows.show() #循環(huán)執(zhí)行窗口觸發(fā)事件,結(jié)束后不留垃圾的退出,不添加的話新建的widget組件就會(huì)一閃而過 sys.exit(app.exec_())
現(xiàn)象如下:
5:配置輸入框
import sys from PyQt5 import QtWidgets,QtGui,QtCore,Qt #創(chuàng)建一個(gè)應(yīng)用(Application)對象,sys.argv參數(shù)是一個(gè)來自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類 windows = QtWidgets.QWidget() #設(shè)置widget組件的大小(w,h) windows.resize(500,500) #設(shè)置widget組件的位置(x,y) windows.move(100,100) """ #設(shè)置widget組件的位置居中 qr = windows.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) windows.move(qr.topLeft()) """ #等同于 w.resize(500,500)和w.move(100,100)兩句結(jié)合,(x,y,w,h) #windows.setGeometry(100,100,500,500) #給widget組件設(shè)置標(biāo)題 windows.setWindowTitle('標(biāo)題') #給widget組件設(shè)置圖標(biāo) windows.setWindowIcon(QtGui.QIcon('2.png')) #設(shè)置輸入框 textbox = Qt.QLineEdit(windows) textbox.resize(100,20) textbox.move(50,50) #show()方法在屏幕上顯示出widget組件 windows.show() #循環(huán)執(zhí)行窗口觸發(fā)事件,結(jié)束后不留垃圾的退出,不添加的話新建的widget組件就會(huì)一閃而過 sys.exit(app.exec_())
現(xiàn)象如下:
三:將上述方法總結(jié)一下實(shí)現(xiàn)了一個(gè)簡單的功能,如下:
功能為:在輸入框中輸入值過后,點(diǎn)擊按鈕就會(huì)打印出你輸入的值,關(guān)閉窗口會(huì)有提示
import sys from PyQt5 import QtWidgets,QtGui,QtCore,Qt class GUI(QtWidgets.QWidget): def __init__(self): #初始化————init__ super().__init__() self.initGUI() def initGUI(self): #設(shè)置窗口大小 self.resize(500,500) #設(shè)置窗口位置(下面配置的是居于屏幕中間) qr = self.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) #設(shè)置窗口標(biāo)題和圖標(biāo) self.setWindowTitle('窗口標(biāo)題') self.setWindowIcon(QtGui.QIcon('2.png')) #設(shè)置窗口提示 self.setToolTip('窗口提示') #設(shè)置label信息 self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(100, 10, 100, 60)) self.label.setText('這是lable信息') self.label.setObjectName('label') # 設(shè)置label提示 self.label.setToolTip('label提示') #設(shè)置輸入框 self.textbox = Qt.QLineEdit(self) self.textbox.resize(100, 20) self.textbox.move(100, 50) # 設(shè)置輸入框提示 self.textbox.setToolTip('輸入框提示') #設(shè)置按鈕 self.btn =QtWidgets.QPushButton('按鈕',self) self.btn.resize(100,20) self.btn.move(200,50) # 設(shè)置按鈕樣式 self.btn.setStyleSheet("background-color: rgb(164, 185, 255);" "border-color: rgb(170, 150, 163);" "font: 75 12pt \"Arial Narrow\";" "color: rgb(126, 255, 46);") # 設(shè)置按鈕提示 self.btn.setToolTip('按鈕提示') #點(diǎn)擊鼠標(biāo)觸發(fā)事件 self.btn.clicked.connect(self.clickbtn) #展示窗口 self.show(); #點(diǎn)擊鼠標(biāo)觸發(fā)函數(shù) def clickbtn(self): #打印出輸入框的信息 textboxValue = self.textbox.text() QtWidgets.QMessageBox.question(self, "信息", '你輸入的輸入框內(nèi)容為:' + textboxValue,QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Ok) #清空輸入框信息 self.textbox.setText('') #關(guān)閉窗口事件重寫 def closeEvent(self, QCloseEvent): reply = QtWidgets.QMessageBox.question(self, '警告',"確定關(guān)閉當(dāng)前窗口?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: QCloseEvent.accept() else: QCloseEvent.ignore() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) gui = GUI() sys.exit(app.exec_())
現(xiàn)象為:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python使用os.listdir和os.walk獲得文件的路徑的方法
本篇文章主要介紹了python使用os.listdir和os.walk獲得文件的路徑的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Python first-order-model實(shí)現(xiàn)讓照片動(dòng)起來
本文將利用first-order-model實(shí)現(xiàn)讓照片動(dòng)起來,除了表情驅(qū)動(dòng)照片,還可以姿態(tài)遷移。文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-06-06使用python讀取txt文件的內(nèi)容,并刪除重復(fù)的行數(shù)方法
下面小編就為大家分享一篇使用python讀取txt文件的內(nèi)容,并刪除重復(fù)的行數(shù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04python concurrent.futures模塊的使用測試
大家都知道concurrent.futures 是 3.2 中引入的新模塊,它為異步執(zhí)行可調(diào)用對象提供了高層接口,今天通過本文給大家介紹python concurrent.futures模塊的使用測試 ,感興趣的朋友一起看看吧2021-07-07如何利用python實(shí)現(xiàn)windows的批處理及文件夾操作
最近工作中需要幾個(gè)腳本運(yùn)行其他程序,幾乎像一個(gè)Windows批處理文件,這篇文章主要給大家介紹了關(guān)于如何利用python實(shí)現(xiàn)windows的批處理及文件夾操作的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析
這篇文章主要介紹了關(guān)于spring的@Bean注解放入引用Bean中初始化失敗分析,Spring的@Bean注解用于告訴方法,產(chǎn)生一個(gè)Bean對象,然后這個(gè)Bean對象交給Spring管理,產(chǎn)生這個(gè)Bean對象的方法Spring只會(huì)調(diào)用一次,需要的朋友可以參考下2023-07-07python學(xué)習(xí)之面向?qū)ο蟆救腴T初級(jí)篇】
Python從第一天開始就是面向?qū)ο蟮恼Z言。正因?yàn)槿绱?,?chuàng)建和使用類和對象是非常地容易。這篇文章主要介紹了python中面向?qū)ο蟮南嚓P(guān)資料,屬于python面向?qū)ο髮W(xué)習(xí)的初級(jí)篇,本章將幫助您在使用Python面向?qū)ο缶幊痰募夹g(shù)方面所有提高,有需要的朋友可以參考借鑒。2017-01-01