QT中各种MessageBox的使用

来源:互联网 发布:加拿大订酒店软件 编辑:程序博客网 时间:2024/04/20 13:03
MessageBox.h#ifndef MESSAGEBOX_H#define MESSAGEBOX_H#include #include "ui_messagebox.h"class MessageBox : public QDialog{Q_OBJECTpublic:MessageBox(QWidget *parent = 0, Qt::WFlags flags = 0);~MessageBox();private:Ui::MessageBoxClass ui;QLabel *label;private slots:void slotQuestion();void slotInformation();void slotWarning();void slotCritical();void slotAbout();void slotAboutQt();void slotCustom();};#endif // MESSAGEBOX_H MessageBox.cpp#include "messagebox.h"MessageBox::MessageBox(QWidget *parent, Qt::WFlags flags): QDialog(parent, flags){ui.setupUi(this);setWindowTitle(tr("Message Box Example"));label = new QLabel;QPushButton *btn1 = new QPushButton("Question");QPushButton *btn2 = new QPushButton("Information");QPushButton *btn3 = new QPushButton("Warning");QPushButton *btn4 = new QPushButton("Critical");QPushButton *btn5 = new QPushButton("About");QPushButton *btn6 = new QPushButton("About Qt");QPushButton *btn7 = new QPushButton("Custom");QGridLayout *grid = new QGridLayout;grid->addWidget(btn1,0,0);grid->addWidget(btn2,0,1);grid->addWidget(btn3,1,0);grid->addWidget(btn4,1,1);grid->addWidget(btn5,2,0);grid->addWidget(btn6,2,1);grid->addWidget(btn7,3,0);QVBoxLayout *mainLayout = new QVBoxLayout;mainLayout->setMargin(10);mainLayout->setSpacing(20);mainLayout->addWidget(label);mainLayout->addLayout(grid);setLayout(mainLayout);connect(btn1,SIGNAL(clicked()),this,SLOT(slotQuestion()));connect(btn2,SIGNAL(clicked()),this,SLOT(slotInformation()));connect(btn3,SIGNAL(clicked()),this,SLOT(slotWarning()));connect(btn4,SIGNAL(clicked()),this,SLOT(slotCritical()));connect(btn5,SIGNAL(clicked()),this,SLOT(slotAbout()));connect(btn6,SIGNAL(clicked()),this,SLOT(slotAboutQt()));connect(btn7,SIGNAL(clicked()),this,SLOT(slotCustom()));}MessageBox::~MessageBox(){}void MessageBox::slotQuestion(){switch(QMessageBox::question(this,"Question",tr("It's end of document,search from begin?"),QMessageBox::Ok|QMessageBox::Cancel,QMessageBox::Ok)){case QMessageBox::Ok:label->setText(" Question button / Ok ");break;case QMessageBox::Cancel:label->setText(" Question button / Cancel ");break;default:break;}return;}void MessageBox::slotInformation(){QMessageBox::information(this,"Information",tr("anything you want tell user"));return;}void MessageBox::slotWarning(){switch(QMessageBox::warning(this,"Warning",tr("Save changes to document?"),QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,QMessageBox::Save)){case QMessageBox::Save:label->setText(" Warning button / Save ");break;case QMessageBox::Discard:label->setText(" Warning button / Discard ");break;case QMessageBox::Cancel:label->setText(" Warning button / Cancel ");break;default:break;}return;}void MessageBox::slotCritical(){QMessageBox::critical(this,"Critical",tr("tell user a critical error"));label->setText(" Critical MessageBox ");return;}void MessageBox::slotAbout(){QMessageBox::about(this,"About",tr("Message box example!"));label->setText(" About MessageBox ");return;}void MessageBox::slotAboutQt(){QMessageBox::aboutQt(this,"About Qt");label->setText(" About Qt MessageBox ");return;}void MessageBox::slotCustom(){QMessageBox customMsgBox;customMsgBox.setWindowTitle("Custom message box");QPushButton *lockButton = customMsgBox.addButton(tr("Lock"),QMessageBox::ActionRole);QPushButton *unlockButton = customMsgBox.addButton(tr("Unlock"),QMessageBox::ActionRole);QPushButton *cancelButton = customMsgBox.addButton(QMessageBox::Cancel);customMsgBox.setIconPixmap(QPixmap(":/images/linuxredhat.png"));customMsgBox.setText(tr("This is a custom message box"));customMsgBox.exec();if(customMsgBox.clickedButton() == lockButton)label->setText(" Custom MessageBox / Lock ");if(customMsgBox.clickedButton() == unlockButton)label->setText(" Custom MessageBox / Unlock ");if(customMsgBox.clickedButton() == cancelButton)label->setText(" Custom MessageBox / Cancel ");return;} main.cpp#include "messagebox.h"#include int main(int argc, char *argv[]){QApplication a(argc, argv);MessageBox *w=new MessageBox;w->show();return a.exec();}
0 0