Qt学习笔记-各种对话框基本使用

运行图如下:






文件结构如下:



代码如下:

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
 
#include <QMainWindow>
#include <QAction>
#include <QMenuBar>
#include <QFontDialog>
#include <QMenu>
#include <QCoreApplication>
#include <QList>
#include <QColor>
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QProgressDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
#include <QWizard>
 
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
 
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
 
public slots:
    void colorTriggered();
    void fileTriggered();
    void fontTriggered();
    void inputTriggered();
    void msgTriggered();
    void progressTriggered();
    void errMsgTriggered();
    void wizardTriggered();
 
 
private:
    QMenuBar *m_menubar;
    QMenu *m_dialogMenu;
 
 
    QAction m_color;
    QAction m_file;
    QAction m_font;
    QAction m_input;
    QAction m_msg;
    QAction m_progress;
    QAction m_errMsg;
    QAction m_wizard;
 
 
 
 
};
 
 
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
 
 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    m_menubar=this->menuBar();
    m_dialogMenu=new QMenu(tr("对话框"));
 
 
 
 
    m_color.setText(tr("颜色对话框"));
    m_file.setText(tr("文件对话框"));
    m_font.setText(tr("字体对话框"));
    m_input.setText(tr("输入对话框"));
    m_msg.setText(tr("消息对话框"));
    m_progress.setText(tr("进度对话框"));
    m_errMsg.setText(tr("错误信息对话框"));
    m_wizard.setText(tr("向导对话框"));
 
 
    m_dialogMenu->addAction(&m_color);
    m_dialogMenu->addAction(&m_file);
    m_dialogMenu->addAction(&m_font);
    m_dialogMenu->addAction(&m_input);
    m_dialogMenu->addAction(&m_msg);
    m_dialogMenu->addAction(&m_progress);
    m_dialogMenu->addAction(&m_errMsg);
    m_dialogMenu->addAction(&m_wizard);
 
 
    m_menubar->addMenu(m_dialogMenu);
 
 
    connect(&m_color,SIGNAL(triggered(bool)),this,SLOT(colorTriggered()));
    connect(&m_file,SIGNAL(triggered(bool)),this,SLOT(fileTriggered()));
    connect(&m_font,SIGNAL(triggered(bool)),this,SLOT(fontTriggered()));
    connect(&m_input,SIGNAL(triggered(bool)),this,SLOT(inputTriggered()));
    connect(&m_msg,SIGNAL(triggered(bool)),this,SLOT(msgTriggered()));
    connect(&m_progress,SIGNAL(triggered(bool)),this,SLOT(progressTriggered()));
    connect(&m_errMsg,SIGNAL(triggered(bool)),this,SLOT(errMsgTriggered()));
    connect(&m_wizard,SIGNAL(triggered(bool)),this,SLOT(wizardTriggered()));
}
void MainWindow::colorTriggered(){
    QColor color=QColorDialog::getColor(Qt::red,this,tr("颜色对话框"));
    qDebug()<<"color:"<<color;
}
 
 
void MainWindow::fileTriggered(){
    QString fileName=QFileDialog::getOpenFileName(this,tr("文件对话框"),"D:",tr("图片文件(*png *jpg)"));
    qDebug()<<"fileName:"<<fileName;
}
 
 
void MainWindow::fontTriggered(){
    bool ok;
    QFont font=QFontDialog::getFont(&ok,this);
    qDebug()<<font;
}
 
 
void MainWindow::inputTriggered(){
    bool ok;
    QString text=QInputDialog::getText(this,tr("输入对话框"),tr("输入内容"),QLineEdit::Normal,tr("输入的内容"),&ok);
    qDebug()<<text;
}
 
 
void MainWindow::msgTriggered(){
    QMessageBox::information(this,tr("消息对话框"),tr("消息提示"));
}
 
 
void MainWindow::progressTriggered(){
    QProgressDialog pd(tr("进度"),tr("取消"),0,50000,this);
    pd.setWindowTitle("进度对话框");
    pd.setWindowModality(Qt::WindowModal);
    pd.show();
    for(int i=0;i<50000;i++){
        pd.setValue(i);
        QCoreApplication::processEvents();
        if(pd.wasCanceled())break;
    }
}
 
 
void MainWindow::errMsgTriggered(){
    QMessageBox::critical(this,tr("错误信息对话框"),tr("错误信息提示"));
}
 
 
void MainWindow::wizardTriggered(){
    QWizard wizard;
    wizard.setWindowTitle(tr("向导对话框"));
    wizard.exec();
}
 
 
 
 
MainWindow::~MainWindow()
{
 
 
}

main.cpp

#include "mainwindow.h"
#include <QApplication>
 
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
 
 
    return a.exec();
}
 
 

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/80001323