Raspberry PI에서는 PySide6을 지원하지 않아, PySide2
를 사용합니다.
sudo apt-get install pyside2-tools
sudo apt-get install pyside2.*
sudo apt-get install python3-pyside2.*
윈도우에서 QT Designer를 통해 UI를 만들어주고, py로 변환해주고, main.py
에 필수 동작 코드를 작성해주고 VNC에 넘겨준다.
넘겨줘야 하는 파일
1. main.py : 필수 동작 코드
2. ui -> py 변환 파일 : UI 파일
윈도우에서는 PySide6을 사용하지만, RIP에서는 PySide2를 사용하기 때문에, 다음과 같이 변경해줍니다.
해당 코드를 통해 구현하였습니다.
from PySide2.QtWidgets import *
from dialog import Ui_MainWindow
from gpiozero import LED, PWMLED, Button
class MyApp(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
Ui_MainWindow.setupUi(self, self)
self.main()
self.led1 = PWMLED(16)
self.led2 = PWMLED(20)
self.ledOff() # ledOff 함수 실행
self.btn = Button(2)
self.btn.when_pressed = self.pressed # 버튼 클릭시 pressed() 함수 실행
def main(self):
pass
def ledOn(self): # led 둘다 킴
self.led1.value = 1
self.led2.value = 1
def ledOff(self): # led 둘다 끔
self.led1.value = 0
self.led2.value = 0
def closeEvent(self, e): # 창 종료시 led 둘다 끔
self.led1.close()
self.led2.close()
def setDial(self, val): # dialog를 통해 받은 신호 값으로 led 밝기 조절
self.led1.value = val / 100 # 0 ~ 1로 밝기 조절 하기 때문에, 100으로 나누어줌
self.led2.value = (100 - val) / 100
self.lcdNumber.display(val) # UI LCD에 값 띄우기
def pressed(self): # led 밝기 반전
print("#")
num = self.led1.value * 100
self.setDial(100 - num)
app = QApplication()
win = MyApp()
win.show()
app.exec_()