3
前一段时间,我在Qt for C++中做了一些工作;现在我正在使用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)
所以,基本上,我的continueButton clicked
信号连接到EventsPage nextPage
信号,其我然后在堆叠到nextPage
方法连接。我可以深入研究Stacked内部的EventsPage,并连接self.widget1.continueButton.clicked
,但这似乎完全击败了信号和插槽的目的。
那么这种方法是有意义的,还是有更好的方法?
+1尼斯类比:) – Skilldrick 2010-04-12 13:15:56