关于Qt 弹窗
2019獨角獸企業重金招聘Python工程師標準>>>
QT中各種MessageBox的使用
MessageBox.h
#ifndef?MESSAGEBOX_H #define?MESSAGEBOX_H#include?<QtGui> #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_HMessageBox.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?<QtGui/QApplication>int?main(int?argc,?char?*argv[]) {QApplication?a(argc,?argv);MessageBox?*w=new?MessageBox;w->show();return?a.exec(); }效果圖:
轉載于:https://my.oschina.net/BlueLove/blog/185940
總結
- 上一篇: Google 翻译,梦想与现实的距离有多
- 下一篇: getopt