【问题标题】:How to change the caption of a button in a QDialogButtonBox?如何更改 QDialogBu​​ttonBox 中按钮的标题?
【发布时间】:2015-09-26 06:04:07
【问题描述】:

我添加了一个带有默认 CancelOK 按钮的QDialogButtonBox 按钮。

有没有办法更改这些按钮的标题?例如,OK 应该变成 Run

【问题讨论】:

  • 股票按钮有翻译的标题和固定的含义。你永远不应该改变他们的标题。相反,向按钮框添加一个自定义(非标准)按钮。

标签: qt pyqt qt-designer


【解决方案1】:

您必须在 cpp 文件中进行一些小编码:

ui->buttonBox->button(QDialogButtonBox::Ok)->setText("Run");
ui->buttonBox->button(QDialogButtonBox::Cancel)->setText("Exit");

请注意,您可能还需要包含 QPushButton 标头:

#include <QPushButton>

更新:

没有注意到 pyqt 标签。我不熟悉 Python(尤其是 PyQt),但我认为这应该可以完成这项工作:

self.ui.buttonBox.button(QDialogButtonBox.Ok).setText("Run")
self.ui.buttonBox.button(QDialogButtonBox.Cancel).setText("Cancel")

此外,正如 Kuba Ober 所指出的,更改标准按钮的文本并不是最好的方法。最正确的方法是添加具有适当角色的自定义按钮。

self.ui.buttonBox.addButton("Run", QDialogButtonBox.ActionRole)

【讨论】:

  • 这可行,但不是最好的建议,因为股票按钮具有固定的含义。对于自定义按钮标题,只需将自定义按钮添加到按钮框即可。
  • 所以使用Qt Designer是不可能做这个修改的..只需在.py中添加代码
  • @KubaOber 谢谢,根据您的评论编辑了答案。
  • @matteo 恐怕无法通过 Qt Designer 做到这一点。总而言之,编写自定义代码并不难。
  • @ZF007。 setText 方法在 PyQt5 中工作得很好——你的代码肯定有其他问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多