2015-07-13 9 views
1

Я хотел бы разместить имя для своих кнопок в этом коде. Речь идет о QMessageBox.Получите имя для моих кнопок в поле QMessage

if(QMessageBox::Ok == QMessageBox(
    QMessageBox::Question, 
    "Confirmar registro.", 
    "¿Desea confirmar guardar los datos?", 
    QMessageBox::Ok, 
    tr("Aceptar") | QMessageBox::Cancel , 
    tr("Cancelar")).exec() 
    ) 
+0

Google - ваш друг https://wiki.qt.io/Custom_QMessageBox_Buttons http://www.qtcentre.org/threads/28739-QMessageBox-Text-in-the-buttons – RedX

ответ

1

Практически прямо из docs в поле «Пользовательское сообщение».

QMessageBox msgBox; 
msgBox.setText("Confirmar registro."); 
msgBox.setInformativeText("¿Desea confirmar guardar los datos?"); 
QAbstractButton *acceptButton = msgBox.addButton("Aceptar", QMessageBox::YesRole); 
QAbstractButton *cancelButton = msgBox.addButton("Cancelar", QMessageBox::NoRole); 
msgBox.setIcon(QMessageBox::Question); 
msgBox.exec(); 
0

Вы можете добавить вас пользовательские QAbstractButton в QMessageBox используя addButton() метод.

Пример использования:

QMessageBox msgBox; 
msgBox.setText(trUtf8("Confirmar registro.")); 
msgBox.setInformativeText("¿Desea confirmar guardar los datos?"); 
QAbstractButton *myYesButton = msgBox.addButton(trUtf8("Aceptar"), QMessageBox::AcceptRole); 
QAbstractButton *myNoButton = msgBox.addButton(trUtf8("Cancelar"), QMessageBox::NoRole); 
msgBox.setIcon(QMessageBox::Question); 
msgBox.exec(); 

if(msgBox.clickedButton() == myNoButton) 
{ 
    return; 
} 
2

QPushButton * QMessageBox::addButton(const QString & text, ButtonRole role) создает кнопку с заданным текстом.