#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