当我点击取消按钮(来自cancel_button_clicked(self):function)时,我无法返回堆叠小部件的第一页
{{1}}
答案 0 :(得分:1)
不建议修改Qt Designer生成的类,如果您是初学者则更糟糕。最值得推荐的是创建一个实现逻辑的类,并使用已经创建的设计。
要做到这一点,你必须选择合适的Widget,如果你用作MainWindow的模板你应该使用QMainWindow,如果你使用Widget你必须使用QWidget,如果你使用Dialog的任何变种你应该使用QDialog作为我认为情况就是这样。
由于任务很简单,没有必要创建像槽这样的方法,我们可以使用lambda函数:lambda: self.stackedWidget.setCurrentIndex(1)
以上所有内容我都在以下代码中实现:
class Dialog(QtWidgets.QDialog, Ui_form):
def __init__(self, parent=None):
QtWidgets.QDialog.__init__(self, parent)
self.setupUi(self)
self.stackedWidget.setCurrentIndex(0)
self.login_button.clicked.connect(self.Confirm_Button_Clicked)
self.register_button.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1))
self.cancel_button.clicked.connect(self.cancel_button_clicked)
def Confirm_Button_Clicked(self):
file = open('user.txt','r')
[...]
def cancel_button_clicked(self):
self.stackedWidget.setCurrentIndex(0)
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())
注意:如果要返回第一页,则应将值0作为当前索引,请记住索引从0开始。