python使用PyQt5的簡(jiǎn)單方法
一:安裝PyQt5
pip install pyqt5
二:PyQt5簡(jiǎn)單使用
1:使用PyQt5創(chuàng)建一個(gè)簡(jiǎn)單窗口
import sys from PyQt5 import QtWidgets #創(chuàng)建一個(gè)應(yīng)用(Application)對(duì)象,sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表, # Python腳本可以在shell中運(yùn)行。這是我們用來(lái)控制我們應(yīng)用啟動(dòng)的一種方法。 app = QtWidgets.QApplication(sys.argv) #創(chuàng)建一個(gè)widget組件基礎(chǔ)類(lèi) 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é)束后不留垃圾的退出,不添加的話(huà)新建的widget組件就會(huì)一閃而過(guò) 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)對(duì)象,sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表,
# Python腳本可以在shell中運(yùn)行。這是我們用來(lái)控制我們應(yīng)用啟動(dòng)的一種方法。
app = QtWidgets.QApplication(sys.argv)
#創(chuàng)建一個(gè)widget組件基礎(chǔ)類(lèi)
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é)束后不留垃圾的退出,不添加的話(huà)新建的widget組件就會(huì)一閃而過(guò)
sys.exit(app.exec_())
現(xiàn)象如下:

3:給創(chuàng)建的窗口設(shè)置按鈕及設(shè)置提示語(yǔ)
import sys
from PyQt5 import QtWidgets,QtGui
#創(chuàng)建一個(gè)應(yīng)用(Application)對(duì)象,sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表,
# Python腳本可以在shell中運(yùn)行。這是我們用來(lái)控制我們應(yīng)用啟動(dòng)的一種方法。
app = QtWidgets.QApplication(sys.argv)
#創(chuàng)建一個(gè)widget組件基礎(chǔ)類(lèi)
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è)置提示語(yǔ)的字體和大小
QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif', 10))
#給widget組件設(shè)置提示語(yǔ)
windows.setToolTip('這是窗口提示')
#設(shè)置按鈕并給按鈕命名
btn = QtWidgets.QPushButton('button',windows)
#給按鈕設(shè)置位置(x,y,w,h)
btn.setGeometry(200,200,100,50)
#給按鈕設(shè)置提示語(yǔ)
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é)束后不留垃圾的退出,不添加的話(huà)新建的widget組件就會(huì)一閃而過(guò)
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)對(duì)象,sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表,
# Python腳本可以在shell中運(yùn)行。這是我們用來(lái)控制我們應(yīng)用啟動(dòng)的一種方法。
app = QtWidgets.QApplication(sys.argv)
#創(chuàng)建一個(gè)widget組件基礎(chǔ)類(lèi)
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é)束后不留垃圾的退出,不添加的話(huà)新建的widget組件就會(huì)一閃而過(guò)
sys.exit(app.exec_())
現(xiàn)象如下:

5:配置輸入框
import sys
from PyQt5 import QtWidgets,QtGui,QtCore,Qt
#創(chuàng)建一個(gè)應(yīng)用(Application)對(duì)象,sys.argv參數(shù)是一個(gè)來(lái)自命令行的參數(shù)列表,
# Python腳本可以在shell中運(yùn)行。這是我們用來(lái)控制我們應(yīng)用啟動(dòng)的一種方法。
app = QtWidgets.QApplication(sys.argv)
#創(chuàng)建一個(gè)widget組件基礎(chǔ)類(lèi)
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é)束后不留垃圾的退出,不添加的話(huà)新建的widget組件就會(huì)一閃而過(guò)
sys.exit(app.exec_())
現(xiàn)象如下:

三:將上述方法總結(jié)一下實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的功能,如下:
功能為:在輸入框中輸入值過(guò)后,點(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)閉窗口事件重寫(xiě)
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)象為:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
對(duì)python多線(xiàn)程中Lock()與RLock()鎖詳解
今天小編就為大家分享一篇對(duì)python多線(xiàn)程中Lock()與RLock()鎖詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python中import導(dǎo)入上一級(jí)目錄模塊及循環(huán)import問(wèn)題的解決
Python中的import語(yǔ)句導(dǎo)入模塊相信大家再熟悉不過(guò)了,這里我們會(huì)來(lái)講解Python中import導(dǎo)入上一級(jí)目錄模塊及循環(huán)import問(wèn)題的解決,需要的朋友可以參考下2016-06-06
pyqt彈出新對(duì)話(huà)框,以及關(guān)閉對(duì)話(huà)框獲取數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇pyqt彈出新對(duì)話(huà)框,以及關(guān)閉對(duì)話(huà)框獲取數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
python matplotlib折線(xiàn)圖樣式實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了python matplotlib折線(xiàn)圖樣式實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù)(示例代碼)
這篇文章主要介紹了基于Python批量鑲嵌拼接遙感影像/柵格數(shù)據(jù),使用時(shí)直接修改Mosaic_GDAL函數(shù)的入?yún)⒕托辛?選擇數(shù)據(jù)存放的路徑會(huì)自動(dòng)拼接,命名也會(huì)自己設(shè)置無(wú)需額外修改,需要的朋友可以參考下2023-10-10
Python?UnicodedecodeError編碼問(wèn)題解決方法匯總
本文主要介紹了Python?UnicodedecodeError編碼問(wèn)題解決方法匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
python基礎(chǔ)之爬蟲(chóng)入門(mén)
這篇文章主要介紹了python基礎(chǔ)之爬蟲(chóng)入門(mén),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python爬蟲(chóng)的小伙伴們有很好地幫助喲,需要的朋友可以參考下2021-05-05
python 使用raw socket進(jìn)行TCP SYN掃描實(shí)例
這篇文章主要介紹了python 使用raw socket進(jìn)行TCP SYN掃描實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05

