result=QMessageBox::question(this, dlgTitle, strInfo,QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,defaultBtn); 怎么样更改对话框中按钮的名字
时间: 2024-08-13 17:10:21 浏览: 54
`result=QMessageBox::question(this,dlgTitle,strInfo,QMessageBox::Yes|QMessageBox::No |QMessageBox::Cancel,defaultBtn)` 这段代码用于创建一个 QMessageBox 对话框,其中包含三个默认按钮:Yes(确定)、No(取消)和 Cancel(中止)。`this` 表示当前对象,`dlgTitle` 是对话框标题,`strInfo` 是显示在对话框中的信息文本。
如果你想更改对话框中按钮的文字,你可以直接修改 `QMessageBox::Yes`、`QMessageBox::No` 和 `QMessageBox::Cancel` 中相应的枚举值对应的字符串。这些枚举类型定义了按钮的名称:
- `QMessageBox::Yes` 对应的是 "Yes" 或者你想要替换的文本,例如 "同意"。
- `QMessageBox::No` 对应的是 "No" 或者 "拒绝"。
- `QMessageBox::Cancel` 对应的是 "取消" 或者 "中止"。
将它们替换为自定义字符串的方法如下:
```cpp
QString customYesText = "确认";
QString customNoText = "否决";
QString customCancelText = "退出";
int result = QMessageBox::question(this, dlgTitle, strInfo,
QMessageBox::Yes | QMessageBox::Custom,
QMessageBox::NoRole, // 设置新按钮的位置
customYesText, // 自定义 "Yes" 文本
QMessageBox::NoRole, // 自定义 "No" 文本
QMessageBox::NoRole, // 自定义 "Cancel" 文本
defaultBtn);
```
这里我们添加了一个 `QMessageBox::Custom` 类型的按钮,并用 `QMessageBox::NoRole` 来指定原 "Yes"、"No" 和 "Cancel" 按钮的位置。然后分别传入自定义的文本作为参数。
阅读全文