PyQt UI控制树莓派硬件
PyQt有两个版本,一开始是第三方的PyQt,后来Qt官方推出了PySide,两者在大多数API上类似,有小部分代码有差异,基本上可以互用,这里使用PyQt。
测试平台: Raspbian-bookworm-arm64.
1. 安装工具
$ sudo apt install python3-pyqt6 python3-gpiozero
2. Blink
接线: LED --> GPIO 3.
设计了一个toggle button,按下去灯亮,弹起来灯灭:
import sys from gpiozero import LED from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QApplication, \ QWidget, QVBoxLayout, QPushButton def toggleClicked(button: QPushButton): # { if button.isChecked(): led.value = 1 print('LED on.') else: led.value = 0 print('LED off.') # } def createToggleButton() -> QPushButton: # { button = QPushButton() button.setText('OFF') button.setFixedSize(100, 30) button.setCheckable(True) button.setStyleSheet('background-color: red') return button # } # QPushButton API : <https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QPushButton.html> def main(): # { app = QApplication([]) widget = QWidget() # Create toggle button. btnToggle = createToggleButton() btnToggle.clicked.connect(lambda: toggleClicked(btnToggle)) # Layout. layout = QVBoxLayout() layout.addWidget(btnToggle) layout.setAlignment(Qt.AlignmentFlag.AlignCenter) # Widget. widget.setLayout(layout) widget.setFixedSize(300, 200) widget.show() sys.exit(app.exec()) # } if '__main__' == __name__: # Create global led device. led = LED(3) main()
运行后,使用PyQt UI通过GPIO Zero控制LED亮灭.

浙公网安备 33010602011771号