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

Posted

技术标签:

【中文标题】访问 Qt 的 QDialogBu​​ttonBox 中的单个按钮【英文标题】:Access individual button inside Qt's QDialogButtonBox 【发布时间】:2017-04-16 17:59:40 【问题描述】:

长话短说。我有一个从 ui 文件生成的 python 模块,假设 dialog.py 这个表单包含 QDialogBu​​ttonBox 小部件 self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)

问题是如何访问此按钮框中的单个按钮?

我曾尝试使用ui.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False),但它不起作用,程序反而崩溃了。 http://pyqt.sourceforge.net/Docs/PyQt4/qdialogbuttonbox.html#button

我唯一能想到的是:

ui.buttonBox.buttons()[0].setEnabled(False)

注意复数按钮s,它可以工作,但我不确定这是否便携且正确。

这是原始 Qt 链接,因为这是 pyqt5 http://doc.qt.io/qt-5.6/qdialogbuttonbox.html#button

问候。

【问题讨论】:

我已经尝试过您尝试过的方法,它对我来说效果很好。你能显示更多代码吗 试试QtGui.QDialogButtonBox.Ok 【参考方案1】:

我只能说我是个白痴 ;-) 我忘记在这个模块中导入 QDialogBu​​ttonBox 而是直接使用解释器运行 python 脚本我通过'sublime text'(文本编辑器)构建菜单运行它,它给了我这个消息:

[在 3.1 秒内完成,退出代码 -6] 所以答案是没有导入 QDialogBu​​ttonBox 符号,如果我用 python 解释器运行它我就知道了。

【讨论】:

以上是关于访问 Qt 的 QDialogBu​​ttonBox 中的单个按钮的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何处理 QDialogBu​​ttonBox RestoreDefaults 按钮

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

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

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