얼마 전 나는 C++ 용 Qt에서 약간의 작업을했다. 지금 나는 PyQt로 일하고있다.PyQt 신호를 올바르게 사용하기.
QStackedWidget의 하위 클래스가 있으며 그 안에 QWidget의 하위 클래스가 있습니다. QWidget에서 QStackedWidget의 다음 페이지로 이동하는 버튼을 클릭하고 싶습니다. 다음과 같이 내 (간체) 접근 방식은 다음과 같습니다
class Stacked(QtGui.QStackedWidget):
def __init__(self, parent=None):
QtGui.QStackedWidget.__init__(self, parent)
self.widget1 = EventsPage()
self.widget1.nextPage.connect(self.nextPage)
self.widget2 = MyWidget()
self.addWidget(self.widget1)
self.addWidget(self.widget2)
def nextPage(self):
self.setCurrentIndex(self.currentIndex() + 1)
class EventsPage(QtGui.QWidget):
nextPage = QtCore.pyqtSignal()
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.continueButton = QtGui.QPushButton('Continue')
self.continueButton.clicked.connect(self.nextPage)
그래서, 기본적으로, 나는 다음 nextPage
방법 스택에 연결하고있어 EventsPage nextPage
신호에 continueButton clicked
신호를 연결하고 있습니다. Stacked에서 EventsPage의 내부를 탐구하고 self.widget1.continueButton.clicked
을 연결할 수는 있지만 신호 및 슬롯의 목적을 완전히 상실한 것처럼 보였습니다.
이 접근법은 의미가 있습니까? 아니면 더 좋은 방법이 있습니까?
+1 좋은 비유 :) – Skilldrick