使用QMessageBox,我们可以直接使用其中的静态方法,如information(),warning()等。但是有时候我们希望自行设计对话框,但又不是建立一个新的UI文件,这时我们可以使用一下方法:
QMessageBox msgBox;
msgBox.setWindowTitle(""); //设置窗口名
msgBox.setText(""); //设置文本
msgBox.setInformativeText(""); //设置提示文本
msgBox.setStanderButtons(QMessageBox::Discard | QMessageBox::Cancel); //加入按钮
msgBox.setButtonText(QMessageBox::Discard,""); //设置按钮文本
msgBox.setDefaultButton(QMessageBox::Discard); //设置缺省按钮
int ret = msgBox.exec(); //模态对话框,并获得按键值
//int ret = msgBox.show(); //非模态对话框
switch(ret)
{
case QMessageBox::Discard:
//do something;
case QMessageBox::Cancel:
//do something;
}
这样我们就自行创立了一个对话框,注:
(1)information(),warning()等方法是有返回值的,能获得按键值,代码中也实现了这一功能。
(2)模态对话框(.exce()):在对话框弹出期间,用户不可以切换同程序下的其它窗口,直到该对话框被关闭,warning()方法达到同一效果。
(3)非模态对话框(.show()):控制权即刻返回给调用函数,可以切换其他窗口,information()方法达到同一效果。