0
Python과 PyQt에 익숙하지 않아서 문제를 분명하게 설명 할 수 없으면 미안합니다. 나는 영화관 좌석 선택 UI를 수행 할 이것은 내가 아래에 만든 코드입니다 : 나는 여러 번 버튼 B1을 클릭하면 문제는, 프로그램이 동결되어PyQt - QPushButton loop
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import (QWidget, QApplication)
class Ui2(QWidget):
def __init__(self):
super(Ui2, self).__init__()
uic.loadUi('seat.ui', self)
self.A1.setStyleSheet("background-color: red")
self.B1.clicked.connect(self.greenButton)
self.show()
def greenButton(self):
self.B1.setStyleSheet("background-color: green")
self.B1.clicked.connect(self.whiteButton)
def whiteButton(self):
self.B1.setStyleSheet("background-color: white")
self.B1.clicked.connect(self.greenButton)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Ui2()
sys.exit(app.exec_())
- 나는 곳이 있음을 읽어 전체 메모리로 인해 발생합니다.
또한 버튼 B1에만 해당되며 모든 버튼에 동일한 기능을 구현하려면 어떻게해야합니까?
고맙습니다.
정말 고마워요! 그것은 매력처럼 작동했습니다. 또한 각 버튼에 대한 기능을 만들지 않고 모든 버튼 (예 : A1, A2, B1, B2 ...)에서이 기능을 사용하기 위해 내가해야 할 일을 말해 줄 수 있습니까? – pooroll
다른 위젯에 같은 유형의 이벤트가 있어도 각 이벤트에 대해 하나의 이벤트 핸들러 기능을 항상 선호합니다. 여러 핸들러간에 공통된 기능이있는 경우이를 별도의 메소드로 분해합니다. 그런 다음 각 처리기에서 해당 메서드를 호출합니다. 때때로이 기능은 많은 기능을 제공하지만 성능 저하는 일반적으로 중요하지 않으며 코드를 읽고 이해하기가 더 쉽습니다. –