将插槽连接到 QDialogBu​​ttonBox 中的按钮

Posted

技术标签:

【中文标题】将插槽连接到 QDialogBu​​ttonBox 中的按钮【英文标题】:Connecting a slot to a button in QDialogButtonBox 【发布时间】:2013-07-03 15:10:19 【问题描述】:

我从 QtDesigner 创建了一个标准按钮框,其中包含 Ok、Cancel、Reset。

我使用成功连接了“确定”和“取消”按钮,

self.buttonBox.accepted.connect(self.accept)
self.buttonBox.rejected.connect(self.reject)

甚至定义我自己的接受函数。

那么我将如何连接重置按钮来说出函数“foo()”。我真的不知道。我阅读了有关分配角色和内容的文档,并且令人困惑。

提前致谢。

【问题讨论】:

【参考方案1】:

在python中.-

self.buttonBox.button(QtGui.QDialogButtonBox.Reset).clicked.connect(foo)

【讨论】:

完美,如何调用“标准”重置功能? 我不懂“标准”重置功能。 ResetRole 是一个属性。例如,如果您想将按钮连接到通用 foo 方法。 我的意思是,“接受”角色成功关闭对话框,“重置”角色是否清除数据字段?如果是,我将如何分配角色?【参考方案2】:

我不知道 python,但是你如何在 C++ 中做到这一点是这样的:

QPushButton *resetButton = ui->buttonBox->button(QDialogButtonBox::Reset);
connect(resetButton, signal(clicked()), this, SLOT(myResetFunc()));

这当然需要您将重置按钮的角色设置为QDialogButtonBox::Reset

使用button 功能,您可以获得重置按钮并将其连接到您的插槽。 This 是您的按钮可以拥有的角色列表。我希望这会有所帮助。

【讨论】:

以上是关于将插槽连接到 QDialogBu​​ttonBox 中的按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何将图标设置为 QDialogBu​​ttonBox 中的新按钮?

如何将 qlabel 添加到 QDialogBu​​ttonBox UI 文件

根据多个 QComboBox 的文本启用或禁用 QDialogBu​​ttonBox

访问 Qt 的 QDialogBu​​ttonBox 中的单个按钮

不同平台上的按钮顺序(QDialogBu​​ttonBox)

如何获取由 QDialogBu​​ttonBox 创建的 QPushButton 的角色?