#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 = );
~MainWindow();
QDialog dlg;//自定义为全局变量(成员变量)
}; #endif // MAINWINDOW_H

QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框的更多相关文章

  1. QT常用控件(一)——菜单栏和对话框

    引言 QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).多个工具栏(tool bars).多个锚接部件(dock widgets).一个状态栏(status ...

  2. MFC 文件对话框

    文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如,很多编辑软件像记事本等都有"打开"选项,选择" ...

  3. MFC编程入门之十七(对话框:文件对话框)

    上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框 ...

  4. 工作总结:文件对话框的分类(C++)

    原文地址:http://www.jizhuomi.com/software/173.html 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如 ...

  5. VS2010/MFC对话框:文件对话框

    文件对话框 上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

  6. VS2010/MFC编程入门之十七(对话框:文件对话框)

    上一讲鸡啄米介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见 ...

  7. C#线程安全打开/保存文件对话框

    在多线程单元模式(MTA)中为应用程序使用.NET OpenFileDialog和SaveFileDialog 下载FileDialogsThreadAppartmentSafe_v1.zip 如果您 ...

  8. Java开发笔记(一百三十五)Swing的文件对话框

    除了常规的提示对话框,还有一种对话框也很常见,它叫做文件对话框.文件对话框又分为两小类:打开文件的对话框.保存文件的对话框,但在Swing中它们都用类型JFileChooser来表达.下面是JFile ...

  9. VS2010-MFC(对话框:文件对话框)

    转自:http://www.jizhuomi.com/software/173.html 一 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中 ...

随机推荐

  1. B. Spider Man

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  2. HDU 1995 汉诺塔V (水题)

    题意:.. 析:2^n-i 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <c ...

  3. CodeForces 615C

    题意: 给定两个字符串s1,s2利用s1去构造s2,s1有无限个,可以翻转,你最少要用几个s1才能构造s2.输出每一次使用的s1的有效区间. 伪思路: 据说是暴力就能过的题目.然而自己就是暴力差,模拟 ...

  4. ionic4+angular7+cordova上传图片

    安装插件 安装插件Image Picker $ ionic cordova plugin add cordova-plugin-telerik-imagepicker $ npm install @i ...

  5. NOIp 2015真题模拟赛 By cellur925

    果然我还是最菜的==不接受反驳== Day1 T1:神奇的幻方 思路:直接模拟即可,由于当前放法只与上一放法有关系,用两个变量记录一下即可.10分钟内切掉== 预计得分:100分 实际得分:100分 ...

  6. jqgrid 分级标题

    参考地址:http://www.trirand.com/jqgridwiki/doku.php?id=wiki:groupingheadar Grouping of the header should ...

  7. Hdu 3652 B-number (同余数位DP)

    题目链接: Hdu 3652 B-number 题目描述: 给出一个数n,问 [1, n]区间内有几个数能被13整除并且还有13这个子串? 解题思路: 能整除的数位DP,确定好状态随便搞搞就能过了.d ...

  8. 大数模板 (C ++)

    上次BC遇到一个大数题目,没有大数模板和不会使用JAVA的同学们GG了,赛后从队友哪里骗出大数模板.2333333,真的炒鸡nice(就是有点长),贴出来分享一下好辣. //可以处理字符串前导零 #i ...

  9. Educational Codeforces Round 24 D

    Alice and Bob got very bored during a long car trip so they decided to play a game. From the window ...

  10. 洛谷P3379lca,HDU2586,洛谷P1967货车运输,倍增lca,树上倍增

    倍增lca板子洛谷P3379 #include<cstdio> struct E { int to,next; }e[]; ],anc[][],log2n,deep[],n,m,s,ne; ...