你好,我正在用python2.7编写数据归档程序。我有一个主窗口,有一些元素(按钮,文本行等)点击一个按钮打开一个对话框表单页面。用户在对话框页面上选择答案。对话框页面有一个名为“保存”的按钮。当单击“保存”按钮时,对话框类将用户的选择保存到数据库中。我想做的是,当用户点击对话框上的保存按钮时,它会在主窗口上启用一些未启用的元素。我用这些代码进入对话框类和保存按钮函数来执行此操作:
在self.ui.onceBut.setEnabled(True)等
但我犯了个错误:
AttributeError:“onceDlg”对象没有属性“onceBut”
onceDlg是dialog pages类名。在
我怎样才能解决这个问题,我能做我想做的事?提前谢谢。在
self.ui.onceBut.setEnabled(True)
中的self
引用了对话框,因此您得到了错误,因为您的onceBut
在mainWindow
中,而不是在onceDlg
对话框中。在解决方案:正如@Radio所说,Qt中组件之间的通信通常使用信号和插槽来完成,但这不是唯一的方法。 更简单的方法是简单地将主窗口传递到对话框窗口,这样您就可以在对话框窗口内使用它的按钮或任何您想要的操作。在下一个例子中,我在
dialog = Dialog(self)
行中完成了这一点,其中self
表示MainWindow
,它在Dialog
内用作mainWin
。运行它,单击第一个按钮,对话框将显示,单击对话框中的save
按钮,主菜单中的第二个按钮将被更改和禁用。 我希望我帮过你。在相关问题 更多 >
编程相关推荐