一、PyQt簡介
PyQt是Python下一個非常流行的跨平台GUI庫,使用它能夠快速地創建出強大的GUI程序。PyQt是由Riverbank Computing Limited公司出品的,使用著名的Qt庫作為它的GUI組件,並且在Python下提供了完整的Qt庫接口,讓開發者能夠充分利用Qt所提供的一系列強大的特性。而且,PyQt在開發上有非常完備的文檔支持,在Stack Overflow上也有大量的優秀回答。
二、安裝PyQt5
要使用PyQt5,首先必須要安裝它。PyQt5在Windows,Linux和OS X上都有相應的安裝包,可以在PyQt官網上下載。
在Windows上,可以用pip安裝PyQt5。以管理員身份運行cmd,執行以下命令:
pip install PyQt5
三、PyQt入門
下面我們來看一個最簡單的PyQt5示例,它創建了一個應用窗口,上面有一個標籤和一個按鈕。按鈕按下後,標籤中顯示“One More Time”。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl = QLabel('Press the button for one more time!', self) lbl.move(25, 20) btn = QPushButton('Quit', self) btn.clicked.connect(QApplication.instance().quit) btn.move(100, 50) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('One More Time') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
四、PyQt5組件
PyQt5提供了很多強大的組件,下面我們介紹其中的幾個。
(一)QLabel
QLabel是一個文本標籤,可以用來顯示文本、圖片、超鏈接等。
在下面的例子中,我們使用QLabel顯示了一個靜態文本。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl = QLabel('Hello, PyQt5 in Python!', self) lbl.move(15, 10) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Hello') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
(二)QPushButton
QPushButton是一個按鈕控件,可以用來執行一些動作或者退出應用。下面的例子中,我們添加了一個按鈕,點擊按鈕後,程序退出。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): btn = QPushButton('Quit', self) btn.clicked.connect(QApplication.instance().quit) btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Quit Button') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
(三)QLineEdit
QLineEdit是一個單行編輯器控件,可以用來輸入或顯示文本。
下面的例子中,我們創建一個輸入框,並把輸入框中的文本顯示到標籤中。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl = QLabel(self) lbl.setText('Please Enter Your Name:') lbl.move(20, 20) self.qle = QLineEdit(self) self.qle.move(20, 50) self.qle.textChanged[str].connect(lambda text: lbl.setText(f'Hello {text}!')) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('QLineEdit') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
(四)QComboBox
QComboBox是一個下拉列表控件,可以讓用戶從列表中選擇一個選項。下面的例子中,我們創建了一個下拉列表,並將選項顯示在標籤中。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QComboBox class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lbl = QLabel(self) lbl.move(20, 20) combo = QComboBox(self) combo.move(20, 50) combo.addItem('Python') combo.addItem('C++') combo.addItem('Java') combo.addItem('JavaScript') combo.activated[str].connect(lambda text: lbl.setText(f'You Selected: {text}!')) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('QComboBox') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
五、總結
通過本文,我們學習了如何使用PyQt5創建GUI程序,在此過程中學習了幾個PyQt的基本組件,並編寫了幾個簡單的示例。不僅如此,PyQt5還提供了大量的樣式和主題,讓我們可以輕鬆地修改控件的外觀。如果想要深入學習PyQt5,建議閱讀完整的文檔和示例,掌握更多功能和知識。
原創文章,作者:RQSM,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144195.html