一、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-tw/n/144195.html
微信掃一掃
支付寶掃一掃