一:安裝PyQt5
pip install pyqt5
二:PyQt5簡單使用
1:使用PyQt5創建一個簡單窗口
import sysfrom PyQt5 import QtWidgets#創建一個應用(Application)對象,sys.argv參數是一個來自命令行的參數列表,# Python腳本可以在shell中運行。這是我們用來控制我們應用啟動的一種方法。app = QtWidgets.QApplication(sys.argv)#創建一個widget組件基礎類windows = QtWidgets.QWidget()#設置widget組件的大小(w,h)windows.resize(500,500)#設置widget組件的位置(x,y)windows.move(100,100)"""#設置widget組件的位置居中qr = windows.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)windows.move(qr.topLeft())"""#等同于 w.resize(500,500)和w.move(100,100)兩句結合,(x,y,w,h)#windows.setGeometry(100,100,500,500)#show()方法在屏幕上顯示出widget組件windows.show()#循環執行窗口觸發事件,結束后不留垃圾的退出,不添加的話新建的widget組件就會一閃而過sys.exit(app.exec_())
現象如下:
2:給創建的窗口添加標題和圖標
import sysfrom PyQt5 import QtWidgets,QtGui#創建一個應用(Application)對象,sys.argv參數是一個來自命令行的參數列表,# Python腳本可以在shell中運行。這是我們用來控制我們應用啟動的一種方法。app = QtWidgets.QApplication(sys.argv)#創建一個widget組件基礎類windows = QtWidgets.QWidget()#設置widget組件的大小(w,h)windows.resize(500,500)#設置widget組件的位置(x,y)windows.move(100,100)"""#設置widget組件的位置居中qr = windows.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)windows.move(qr.topLeft())"""#等同于 w.resize(500,500)和w.move(100,100)兩句結合,(x,y,w,h)#windows.setGeometry(100,100,500,500)#給widget組件設置標題windows.setWindowTitle('標題')#給widget組件設置圖標windows.setWindowIcon(QtGui.QIcon('2.png'))#show()方法在屏幕上顯示出widget組件windows.show()#循環執行窗口觸發事件,結束后不留垃圾的退出,不添加的話新建的widget組件就會一閃而過sys.exit(app.exec_())現象如下:
3:給創建的窗口設置按鈕及設置提示語
import sysfrom PyQt5 import QtWidgets,QtGui#創建一個應用(Application)對象,sys.argv參數是一個來自命令行的參數列表,# Python腳本可以在shell中運行。這是我們用來控制我們應用啟動的一種方法。app = QtWidgets.QApplication(sys.argv)#創建一個widget組件基礎類windows = QtWidgets.QWidget()#設置widget組件的大小(w,h)windows.resize(500,500)#設置widget組件的位置(x,y)windows.move(100,100)"""#設置widget組件的位置居中qr = windows.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)windows.move(qr.topLeft())"""#等同于 w.resize(500,500)和w.move(100,100)兩句結合,(x,y,w,h)#windows.setGeometry(100,100,500,500)#給widget組件設置標題windows.setWindowTitle('標題')#給widget組件設置圖標windows.setWindowIcon(QtGui.QIcon('2.png'))#設置提示語的字體和大小QtWidgets.QToolTip.setFont(QtGui.QFont('SansSerif', 10))#給widget組件設置提示語windows.setToolTip('這是窗口提示')#設置按鈕并給按鈕命名btn = QtWidgets.QPushButton('button',windows)#給按鈕設置位置(x,y,w,h)btn.setGeometry(200,200,100,50)#給按鈕設置提示語btn.setToolTip('這是按鈕提示')#設置按鈕樣式btn.setStyleSheet("background-color: rgb(164, 185, 255);" "border-color: rgb(170, 150, 163);" "font: 75 12pt /"Arial Narrow/";" "color: rgb(126, 255, 46);")#點擊按鈕關閉創建的窗口btn.clicked.connect(QtCore.QCoreApplication.instance().quit)#show()方法在屏幕上顯示出widget組件windows.show()#循環執行窗口觸發事件,結束后不留垃圾的退出,不添加的話新建的widget組件就會一閃而過sys.exit(app.exec_())現象如下(點擊button按鈕,窗口關閉):
4:設置標簽(lable)信息
import sysfrom PyQt5 import QtWidgets,QtGui,QtCore#創建一個應用(Application)對象,sys.argv參數是一個來自命令行的參數列表,# Python腳本可以在shell中運行。這是我們用來控制我們應用啟動的一種方法。app = QtWidgets.QApplication(sys.argv)#創建一個widget組件基礎類windows = QtWidgets.QWidget()#設置widget組件的大小(w,h)windows.resize(500,500)#設置widget組件的位置(x,y)windows.move(100,100)"""#設置widget組件的位置居中qr = windows.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)windows.move(qr.topLeft())"""#等同于 w.resize(500,500)和w.move(100,100)兩句結合,(x,y,w,h)#windows.setGeometry(100,100,500,500)#給widget組件設置標題windows.setWindowTitle('標題')#給widget組件設置圖標windows.setWindowIcon(QtGui.QIcon('2.png'))#設置lable信息label = QtWidgets.QLabel(windows)label.setGeometry(QtCore.QRect(100, 10, 100, 60))label.setText('這是lable信息')label.setObjectName('label')#show()方法在屏幕上顯示出widget組件windows.show()#循環執行窗口觸發事件,結束后不留垃圾的退出,不添加的話新建的widget組件就會一閃而過sys.exit(app.exec_())現象如下:
5:配置輸入框
import sysfrom PyQt5 import QtWidgets,QtGui,QtCore,Qt#創建一個應用(Application)對象,sys.argv參數是一個來自命令行的參數列表,# Python腳本可以在shell中運行。這是我們用來控制我們應用啟動的一種方法。app = QtWidgets.QApplication(sys.argv)#創建一個widget組件基礎類windows = QtWidgets.QWidget()#設置widget組件的大小(w,h)windows.resize(500,500)#設置widget組件的位置(x,y)windows.move(100,100)"""#設置widget組件的位置居中qr = windows.frameGeometry()cp = QtWidgets.QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)windows.move(qr.topLeft())"""#等同于 w.resize(500,500)和w.move(100,100)兩句結合,(x,y,w,h)#windows.setGeometry(100,100,500,500)#給widget組件設置標題windows.setWindowTitle('標題')#給widget組件設置圖標windows.setWindowIcon(QtGui.QIcon('2.png'))#設置輸入框textbox = Qt.QLineEdit(windows)textbox.resize(100,20)textbox.move(50,50)#show()方法在屏幕上顯示出widget組件windows.show()#循環執行窗口觸發事件,結束后不留垃圾的退出,不添加的話新建的widget組件就會一閃而過sys.exit(app.exec_())現象如下:
三:將上述方法總結一下實現了一個簡單的功能,如下:
功能為:在輸入框中輸入值過后,點擊按鈕就會打印出你輸入的值,關閉窗口會有提示
import sysfrom PyQt5 import QtWidgets,QtGui,QtCore,Qtclass GUI(QtWidgets.QWidget): def __init__(self): #初始化————init__ super().__init__() self.initGUI() def initGUI(self): #設置窗口大小 self.resize(500,500) #設置窗口位置(下面配置的是居于屏幕中間) qr = self.frameGeometry() cp = QtWidgets.QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) #設置窗口標題和圖標 self.setWindowTitle('窗口標題') self.setWindowIcon(QtGui.QIcon('2.png')) #設置窗口提示 self.setToolTip('窗口提示') #設置label信息 self.label = QtWidgets.QLabel(self) self.label.setGeometry(QtCore.QRect(100, 10, 100, 60)) self.label.setText('這是lable信息') self.label.setObjectName('label') # 設置label提示 self.label.setToolTip('label提示') #設置輸入框 self.textbox = Qt.QLineEdit(self) self.textbox.resize(100, 20) self.textbox.move(100, 50) # 設置輸入框提示 self.textbox.setToolTip('輸入框提示') #設置按鈕 self.btn =QtWidgets.QPushButton('按鈕',self) self.btn.resize(100,20) self.btn.move(200,50) # 設置按鈕樣式 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);") # 設置按鈕提示 self.btn.setToolTip('按鈕提示') #點擊鼠標觸發事件 self.btn.clicked.connect(self.clickbtn) #展示窗口 self.show(); #點擊鼠標觸發函數 def clickbtn(self): #打印出輸入框的信息 textboxValue = self.textbox.text() QtWidgets.QMessageBox.question(self, "信息", '你輸入的輸入框內容為:' + textboxValue,QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Ok) #清空輸入框信息 self.textbox.setText('') #關閉窗口事件重寫 def closeEvent(self, QCloseEvent): reply = QtWidgets.QMessageBox.question(self, '警告',"確定關閉當前窗口?", 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_())現象為:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答