各种消息框

1、不同的消息使用不同的消息框,常用的消息框一般是7中,主要是Question、Information、Waring、Critical、About、About Qt以及自定义消息框。


2、Question、Information、Waring、Critica这几个消息框的使用方法差不多。


这些都还是比较简单的,还是看代码比较清晰:

dialog.h

#ifndef DIALOG_H
#define DIALOG_H
 
#include <QDialog>
#include <QMessageBox>
#include <QGridLayout>
#include <QPushButton>
#include <QMessageBox>
#include <QLabel>
 
namespace Ui {
class Dialog;
}
 
class Dialog : public QDialog
{
    Q_OBJECT
public:
    QGridLayout* layout;
 
    QPushButton* question;
    QPushButton* information;
    QPushButton* waring;
    QPushButton* critical;
    QPushButton* about;
    QPushButton* qboutqt;
    QPushButton* custem;
    QLabel* lable;
    QLabel* lable1;
    QLabel* lable2;
    QLabel* lable3;
 
private slots:
    void slotQuestion();
    void slotInformation();
    void slotWaring();
    void slotCritical();
    void slotAbout();
    void slotAboutQt();
    void slotCustem();
public:
 
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
 
private:
    Ui::Dialog *ui;
};
 
#endif // DIALOG_H
 

dialog.cpp

#include "dialog.h"
#include "ui_dialog.h"
 
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    //设置主窗口的标题
    setWindowTitle(tr("message"));
    //相关按钮的创建
    question = new QPushButton;
    question->setText(tr("question"));
    information = new QPushButton;
    information->setText(tr("information"));
    waring = new QPushButton;
    waring->setText(tr("waring"));
    critical = new QPushButton;
    critical->setText(tr("critical"));
    about = new QPushButton;
    about->setText(tr("about"));
    custem = new QPushButton;
    custem->setText(tr("custem"));
 
    //这些lable是用来显示相关的提示信息
    lable = new QLabel;
    lable1 = new QLabel;
    lable2 = new QLabel;
    lable3 = new QLabel;
 
//向主窗体添加控件
    layout = new QGridLayout(this);
    layout->addWidget(question,0,0);
    layout->addWidget(information,0,1);
    layout->addWidget(waring,1,0);
    layout->addWidget(critical,1,1);
    layout->addWidget(about,2,0);
    layout->addWidget(custem,2,1);
 
//信号与槽
    connect(question,SIGNAL(clicked()),this,SLOT(slotQuestion()));
    connect(information,SIGNAL(clicked()),this,SLOT(slotInformation()));
    connect(waring,SIGNAL(clicked()),this,SLOT(slotWaring()));
    connect(critical,SIGNAL(clicked()),this,SLOT(slotCritical()));
    connect(about,SIGNAL(clicked()),this,SLOT(slotAbout()));
    connect(custem,SIGNAL(clicked()),this,SLOT(slotCustem()));
}
//Question消息框的使用
void Dialog::slotQuestion()
{
 
    switch (QMessageBox::question(this,"Question",tr("it,s end of documents,search from begin ?"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok))
    {
    case QMessageBox::Ok:
        lable->setText("question button / ok");
        break;
    case QMessageBox::Cancel:
        lable->setText("question button / cancle");
        break;
    default:
        break;
    }
}
Information消息框的使用
void Dialog::slotInformation()
{
    QMessageBox::information(this,"information",tr("anything you wnat tell user"));
    return;
}
//Waring消息框的使用
void Dialog::slotWaring()
{
    switch (QMessageBox::warning(this,"waring",tr("save changes to documents?"),QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel)) {
    case QMessageBox::Save:
        lable->setText(tr("waring button / save"));
        break;
    case QMessageBox::Discard:
        lable->setText(tr("waring button / discard"));
        break;
    case QMessageBox::Cancel:
        lable->setText(tr("waring button / cancle"));
        break;
    default:
        break;
    }
}
//Critical消息框的使用
void Dialog::slotCritical()
{
    QMessageBox::critical(this,"information",tr("tell user a critical error"));
    lable->setText(tr("critical message"));
    return ;
}
//About消息框的使用
void Dialog::slotAbout()
{
    QMessageBox::about(this,"about",tr("this is about nan yang university message"));
    lable->setText(tr("about message"));
    return ;
}
//AboutQt消息框的使用
void Dialog::slotAboutQt()
{
    QMessageBox::critical(this,"Information",tr("tell user a critical error"));
    lable->setText("Critical messagebox");
 
}
//Custem消息框的使用
void Dialog::slotCustem()
{
    QMessageBox custemMsgBox;
 
    custemMsgBox.setWindowTitle(tr("custem message box"));
 
    QPushButton* lockButton = custemMsgBox.addButton(tr("解锁"),QMessageBox::ActionRole);
    QPushButton* unlockButton = custemMsgBox.addButton(tr("锁定"),QMessageBox::ActionRole);
    QPushButton* cancelButton = custemMsgBox.addButton(tr("Cancle"),QMessageBox::ActionRole);
//添加图标
   /* custemMsgBox.setIconPixmap(QPixmap("1.png"));
    custemMsgBox.setText(tr("This is custem message box"));
    custemMsgBox.exec();
*/
 
 
    if(custemMsgBox.clickedButton() == lockButton)
        lable1->setText(tr("Custem MessageBox / Lock"));
    if(custemMsgBox.clickedButton() == unlockButton)
        lable2->setText(tr("Custem MessageBox / Unlock"));
    if(custemMsgBox.clickedButton() == cancelButton)
        lable3->setText(tr("Custem Cancle / Cancle"));
 
 
}
 
Dialog::~Dialog()
{
    delete ui;
}
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值