python 使用PyQt5

一:安裝PyQt5shell

pip install pyqt5

二:PyQt5簡單使用
1:使用PyQt5建立一個簡單窗口windows

import sys
from 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_())

現象以下:
clipboard.png
2:給建立的窗口添加標題和圖標app

import sys
from 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_())

現象以下:
clipboard.png
3:給建立的窗口設置按鈕及設置提示語函數

import sys
from 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按鈕,窗口關閉):
clipboard.png
4:設置標籤(lable)信息字體

import sys
from 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_())

現象以下:
clipboard.png
5:配置輸入框ui

import sys
from 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_())

現象以下:
clipboard.png
三:將上述方法總結一下實現了一個簡單的功能,以下:
功能爲:在輸入框中輸入值事後,點擊按鈕就會打印出你輸入的值,關閉窗口會有提示spa

import sys
from PyQt5 import QtWidgets,QtGui,QtCore,Qt
class 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_())

現象爲:
clipboard.png命令行

相關文章
相關標籤/搜索