用Qt QMessageBox类创建带汉字按钮的消息框

  • 原创
  • |
  • 浏览:5454
  • |
  • 更新:

在Qt中创建一个消息框是非常方便的,可以直接调用QMessageBox的几个静态函数即可。可是,静态函数所显示的消息框的按钮文字为英文,那么如何才能创建中文按钮的消息框呢?

用Qt QMessageBox类创建带汉字按钮的消息框

工具/原料

  • 电脑
  • Qt SDK 4.8以上,最好5以上
  • Qt Creator开发工具

方法/步骤

  1. 1

    首先,在Qt Creator中新建一个基类为QWidget的工程,当然基于QMainWindow或QDialog的也可以。并在窗口中拖入一个按钮。

    用Qt QMessageBox类创建带汉字按钮的消息框
  2. 2

    在按钮的槽中输入一行代码  QMessageBox::information(this,"test","hello world!"); 然后运行程序,点击窗体中的按钮可以看到弹出的消息框。注意下图中的红色框,其中#inlude <QMessageBox>和#inlude <QPushButton>不要忘了。

    用Qt QMessageBox类创建带汉字按钮的消息框
  3. 3

    可以看到消息框的按钮为英文的OK。接下来将刚才那行代码注释掉。先来看看QMessageBox的Assistant相关说明。其中讲到了QMessageBox的一个成员函数addButton的使用,而这正是我们要用到的。

    用Qt QMessageBox类创建带汉字按钮的消息框
  4. 3
    此文章非法爬取自百度经验
  5. 4

    下面我们在刚才注释掉的代码下面再添加几行代码:

    QPushButton *okbtn=new QPushButton(QObject::tr("确定"));

    QPushButton *cancelbtn=new QPushButton(QObject::tr("取消"));

    QMessageBox *mymsgbox=new QMessageBox;

    mymsgbox->addButton(okbtn,QMessageBox::AcceptRole);

    mymsgbox->addButton(cancelbtn,QMessageBox::RejectRole); 

    mymsgbox->show();

    我们上面生成了一个QMessageBox的实例,而不再用QMessageBox的静态函数了。

    用Qt QMessageBox类创建带汉字按钮的消息框
  6. 5

    最后来看看运行的效果。注意红色的框。其实窗体上可以添加多个按钮,根据实际需要进行编码。

    用Qt QMessageBox类创建带汉字按钮的消息框
    END

注意事项

  • 对于Qt 4.8要注意设置中文编码,否则可能造成汉字变乱码
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部