QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框

Posted doker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框相关的知识,希望对你有一定的参考价值。

#include "mainwindow.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QDialog>
#include<QDebug>

#include <QMessageBox>
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)


    QMenuBar *mBar = menuBar();
    setMenuBar(mBar);
    QMenu *menu = mBar->addMenu("对话框");

    //使用标准对话框
    //关于对话框
    QAction *p3 = menu->addAction("关于对话框");
    connect(p3,&QAction::triggered,[=]()

        /*经过查看QmessageBox的帮助文档,里面的Static Public Members,查看里面的about函数的使用方法
         * 从Static Public Members得知其是静态的成员函数,这里就涉及到调用类里面的静态的成员函数。即通过类名调用;
         * 最后的调用方式如下:
         * QMessageBox::about(this,"about","关于QT");
         *
        */
        QMessageBox::about(this,"about","关于QT");
    );

    //问题对话框
    QAction *p4 = menu->addAction("问题对话框");
    connect(p4,&QAction::triggered,[=]()
        /*这里的问题对话框的创建过程和上一个差不多,但是有一个地方需要注意,问题对话框上面有两个按钮,
         * 怎么知道我点击了哪一个按钮?
         * 通过查看QMessageBox的帮助文档,Public Types 里面的 StandardButton里面的内容,可以看到枚举的不同按钮
         * 得知其会返回一个值,所以我们定义一个值用来接收,如下:
         * int ret =   QMessageBox::question(this,"question","ARE YOU OK ?");
         *
         * 当然了,有的时候我们并不想只有YES和NO这两个按钮,这里也是可以改变的,改变的代码如下:
         * int ret =   QMessageBox::question(this,"question","ARE YOU OK ?",QMessageBox::OK|QMessageBox::Cancel);
         * 此时里面的按钮就会变成OK键和cancel键了。
        */
          int ret =   QMessageBox::question(this,"question","ARE YOU OK ?");
            switch(ret)
            
                case QMessageBox::Yes:
                qDebug()<<"I am OK ";
                break;
            case QMessageBox::No:
                qDebug()<<"NO OK";
                break;
            default:
                break;
            
    );

    //文件对话框
    QAction *p5 = menu->addAction("文件对话框");
    connect(p5,&QAction::triggered,[=]()

        /*打开一个文件,显示内容,显示路径,
         * 通过查看getOpenFileName里面的内容,(其实里面已经有写好的例子)
         * QFileDialog::getOpenFileName(this,"open","../");会有一个返回值,
         * QString path = QFileDialog::getOpenFileName(this,"open","../");
         * 如果想打开指定格式的文件怎么写?
         * 注意:当想有多种类型的文件打开时,使用两个;;来进行表示
         *
        */
        QString path = QFileDialog::getOpenFileName(this,"open","../","source(*.cpp *.h);;Text(*.txt);;all(*.*)");
        qDebug()<<path;
    );



MainWindow::~MainWindow()


 getOpenFileName(this,"open","../","source(*.cpp *.h);;Text(*.txt);;all(*.*)");中的"source(*.cpp *.h);;Text(*.txt);;all(*.*)"很长的时候,可以在;;后直接按enter换行,这样操作在QT里面是没有问题的。

 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDialog>
class MainWindow : public QMainWindow

    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
     QDialog dlg;//自定义为全局变量(成员变量)
;

#endif // MAINWINDOW_H

 

以上是关于QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框的主要内容,如果未能解决你的问题,请参考以下文章

Qt中的标准对话框之QMessageBox

Qt 标准对话框

qt 对话框扩展 缩放

Qt 标准对话框示例:打开文件

Qt中的标准对话框

Qt中的标准对话框