#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
转载于:https://www.cnblogs.com/doker/p/11031134.html
相关资源:QT中实现8个基本对话框