C++ 无法更新qt对话框中的按钮
我正试图改变qt对话框的语言以及两个按钮“OK”和“CLOSE”,但我不能这样做,我只能改变文字信息的语言 PFB代码:C++ 无法更新qt对话框中的按钮,c++,qt,C++,Qt,我正试图改变qt对话框的语言以及两个按钮“OK”和“CLOSE”,但我不能这样做,我只能改变文字信息的语言 PFB代码: void updateDiagWidgets() { QString qstr = QString::fromStdString(MY_String); QString qyes = QString::fromStdString(MY_String_YES); QString qno = QString::fromStdString(MY_String_NO); if(gDi
void updateDiagWidgets() {
QString qstr = QString::fromStdString(MY_String);
QString qyes = QString::fromStdString(MY_String_YES);
QString qno = QString::fromStdString(MY_String_NO);
if(gDiagBox != NULL) {
gDiagBox->setText(qstr);
replaint();
QPushButton* yesBtn = gDiagBox->addButton(qyes, QMessageBox::YesRole);
gDiagBox->addButton(qno, QMessageBox::NoRole);
gDiagBox->setDefaultButton(yesBtn);
}
else {
QMessageBox *msgBox = new QMessageBox(browser);
if(msgBox != NULL) {
DEBUG("updateDiagWidgets Message string is %s\n",MY_String.c_str());
DEBUG("updateDiagWidgets YES string is %s\n",MY_String_YES.c_str());
DEBUG("updateDiagWidgets NO string is %s\n",MY_String_NO.c_str());
msgBox->setWindowTitle("");
msgBox->setText(qstr);
msgBox->setParent(0);
msgBox->setWindowFlags(Qt::Window);
msgBox->setWindowFlags(Qt::BypassWindowManagerHint);
QPushButton* yesBtn = msgBox->addButton(qyes, QMessageBox::YesRole);
msgBox->addButton(qno, QMessageBox::NoRole);
msgBox->setDefaultButton(yesBtn);
gDiagBox = msgBox;
DEBUG("updateDiagWidgets done msgBox updation");
}
else {
DEBUG("updateDiagWidgets Error allocating memory for dialog box");
}
}
}
我可以在上面的代码中单独更改qstr的语言,但是我无法更改qyes和qno的语言。
请帮我解决这个问题
提前感谢。您是否在应用程序中使用了tr() 您可以通过github、drive或类似工具共享整个项目,因为您的示例不完整,例如,在显示小部件时,请不要指明是否要更改文本。我希望在更改语言时,翻译后的“是”和“否”字符串出现在qt消息框按钮上。请知道,我们已经有一个函数来更改语言,我有更改的字符串,我只想在语言更改后动态更新更改的字符串。什么语言?在代码中没有看到这一点,因此我要求您共享完整的代码,因为如果显示的代码不完整。您在这里做了一些奇怪的事情。您正在添加一组新按钮,即使您的消息框中已有按钮。用于从消息框中获取现有按钮,并为其设置新文本。