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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM