赞
踩
1、
2、
3、
因为之后用到lambda;
在.pro文件添加配置c++11
- CONFIG +=c++11
- #不能加分号
#include <QMenuBar>//菜单栏的头文件
- #include "mainwindow.h"
- #include <QMenuBar>//菜单栏的头文件
- #include <QMenu>//菜单的头文件
- #include <QAction>//动作头函数
- #include <QDebug>//打印头文件
- #include<QToolBar>//工具头文件,快捷图标工具
- #include<QPushButton>//添加按钮
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- {
- //菜单栏的文件菜单
- QMenuBar *mBar=menuBar();//生成一个菜单栏
-
- QMenu *pFile=mBar->addMenu("文件");//给菜单栏添加一个菜单名设置为文件;pFile就是指向这个文件菜单
- QAction *pnew= pFile->addAction("新建");//添加菜单项,pnew指向,新建菜单项 的动作返回值
-
- connect(pnew,&QAction::triggered,
-
- [=]()
- {
- qDebug()<<"新建被按下";
- }
- );
- pFile->addSeparator();//添加分割线
- QAction *popen =pFile->addAction("打开");//再添加一个菜单项,pFile是指向菜单名为文件
-
- //工具栏,菜单项的快捷方式;菜单栏下面的图标快捷工具
- QToolBar *toolBar =addToolBar("toolBar");//添加工具栏,菜单栏下面的可视化图标工具快捷键 toolBar指向菜单栏
- toolBar->addAction( pnew );//工具栏添加快捷键,添加了一个指向新建菜单项
-
- QPushButton *b=new QPushButton(this);//在工具栏添加一个按键
- b->setText("按键1");
-
- //添加小控件
- toolBar->addWidget(b);//添加控件为b按钮的控件
-
- connect(b,&QPushButton::clicked,
-
- [=]() //()里面可以添加信号的参数列表 clicked 发了个bool 型 那么
- {
- b->setText("123");//按一次就变名字
- }
-
- );
- resize(500,500);
-
-
- }
-
- MainWindow::~MainWindow()
- {
-
- }
- #include "mainwindow.h"
- #include <QMenuBar>//菜单栏的头文件
- #include <QMenu>//菜单的头文件
- #include <QAction>//动作头函数
- #include <QDebug>//打印头文件
- #include<QToolBar>//工具头文件,快捷图标工具
- #include<QPushButton>//添加按钮
-
- #include<QStatusBar>//状态栏的头文件
- #include<QLabel>//标签头文件
- #include<QTextEdit>//文本编辑器
- #include<QDockWidget>//浮动窗口头文件
-
- #include<QDialog>//对话窗口
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- {
- //菜单栏的文件菜单
- QMenuBar *mBar=menuBar();//生成一个菜单栏
-
- QMenu *pFile=mBar->addMenu("文件");//给菜单栏添加一个菜单名设置为文件;pFile就是指向这个文件菜单
- QAction *pnew= pFile->addAction("新建");//添加菜单项,pnew指向,新建菜单项 的动作返回值
-
- connect(pnew,&QAction::triggered,
-
- [=]()
- {
- qDebug()<<"新建被按下";
- }
- );
- pFile->addSeparator();//添加分割线
- QAction *popen =pFile->addAction("打开");//再添加一个菜单项,pFile是指向菜单名为文件
-
- //工具栏,菜单项的快捷方式;菜单栏下面的图标快捷工具
- QToolBar *toolBar =addToolBar("toolBar");//添加工具栏,菜单栏下面的可视化图标工具快捷键 toolBar指向菜单栏
- toolBar->addAction( pnew );//工具栏添加快捷键,添加了一个指向新建菜单项
-
- QPushButton *b=new QPushButton(this);//在工具栏添加一个按键
- b->setText("按键1");
-
- //添加小控件
- toolBar->addWidget(b);//添加控件为b按钮的控件
-
- connect(b,&QPushButton::clicked,
-
- [=]() //()里面可以添加信号的参数列表 clicked 发了个bool 型 那么
- {
- b->setText("123");//按一次就变名字
- }
-
- );
- resize(500,500);
-
- //以下是状态栏*********************
- QStatusBar *sBar =statusBar();//
- QLabel *lable = new QLabel(this);//新建一个标签
- lable->setText("Normal text file");//给标签一个名字
- sBar->addWidget(lable);//状态栏 添加一个控件
-
- //默认从左往右边添加
- sBar->addWidget(new QLabel("2",this)); // 状态栏添加一个控件 ,控件为2 且控件父对象是这个窗口
-
-
- //状态栏 添加控件,从右边往左边添加
- sBar->addPermanentWidget(new QLabel("3",this));
-
-
-
- //核心控件*********************************
- QTextEdit *textEdit =new QTextEdit(this);//文本编辑器指定父对象为this
- setCentralWidget(textEdit); //设计一个核心控件,为文本编辑器
-
-
- //浮动窗口
- QDockWidget *dock=new QDockWidget(this);//一个新的浮动窗口
- addDockWidget(Qt::RightDockWidgetArea,dock);//F1进去看填什么参数,点击参数枚举从中看到第一个参数例子
- //添加一个浮动窗口dock 放在右边
-
- //模态对话框,弹出的窗口,无法操作主窗口
- //非模态对话框,弹出的窗口,且可以操作主窗口;
-
- QMenu *menu =mBar->addMenu("对话框");
- QAction *p1= menu->addAction("模态对话框");
- connect(p1,QAction::triggered,
- [=]()
- {
- QDialog dlg;//一个对话框
- dlg.show();//显示对话框
-
- dlg.exec();//因为这个一直不退出,主窗口也不执行
- qDebug()<<"1111";
-
- }
-
- );
- QAction *p2= menu->addAction("非模态对话框");
- connect(p2,QAction::triggered,
- [=]()
- {
-
-
- //QDialog dlg;//一个对话框 这个因为会被释放,所以改成主窗口的成员在.h文件增加
- //或者 动态申请 对话框 QDialog *p_dlg = new QDialog(this);
- //动态申请 不好 如果多次进入非模块组,内存只会整个程序结束才释放。内存越来越少
- // QDialog *p_dlg = new QDialog(this);
- // p_dlg->show();
- // p_dlg->setAttribute(Qt::WA_DeleteOnClose,true);//F1进入,第一参,关闭的时候释放
-
- //QDialog dlg;//一个对话框 这个因为会被释放,所以改成主窗口的成员在.h文件增加
- dlg.show();//显示对话框
- // dlg.exec();//非模态不能用这个,会阻塞
- qDebug()<<"1111";
-
- }
-
- );
-
-
-
-
-
-
-
-
-
-
- }
-
- MainWindow::~MainWindow()
- {
-
- }
需要包含头文件#include<QMessageBox>
选中这个头可以F1进入帮助文档找到如下
void about(QWidget * parent, const QString & title, const QString & text)
参1 父类 ,参2 标题 参3 内容文本
- #include "mainwindow.h"
- #include <QMenuBar>//菜单栏的头文件
- #include <QMenu>//菜单的头文件
- #include <QAction>//动作头函数
- #include <QDebug>//打印头文件
- #include<QToolBar>//工具头文件,快捷图标工具
- #include<QPushButton>//添加按钮
-
- #include<QStatusBar>//状态栏的头文件
- #include<QLabel>//标签头文件
- #include<QTextEdit>//文本编辑器
- #include<QDockWidget>//浮动窗口头文件
-
- #include<QDialog>//标准对话窗口头文件
- #include<QFileDialog>//文件对话窗口头文件
-
-
- #include<QMessageBox>
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- {
- //菜单栏的文件菜单
- QMenuBar *mBar=menuBar();//生成一个菜单栏
-
- QMenu *pFile=mBar->addMenu("文件");//给菜单栏添加一个菜单名设置为文件;pFile就是指向这个文件菜单
- QAction *pnew= pFile->addAction("新建");//添加菜单项,pnew指向,新建菜单项 的动作返回值
-
- connect(pnew,&QAction::triggered,
-
- [=]()
- {
- qDebug()<<"新建被按下";
- }
- );
- pFile->addSeparator();//添加分割线
- QAction *popen =pFile->addAction("打开");//再添加一个菜单项,pFile是指向菜单名为文件
-
- //工具栏,菜单项的快捷方式;菜单栏下面的图标快捷工具
- QToolBar *toolBar =addToolBar("toolBar");//添加工具栏,菜单栏下面的可视化图标工具快捷键 toolBar指向菜单栏
- toolBar->addAction( pnew );//工具栏添加快捷键,添加了一个指向新建菜单项
-
- QPushButton *b=new QPushButton(this);//在工具栏添加一个按键
- b->setText("按键1");
-
- //添加小控件
- toolBar->addWidget(b);//添加控件为b按钮的控件
-
- connect(b,&QPushButton::clicked,
-
- [=]() //()里面可以添加信号的参数列表 clicked 发了个bool 型 那么
- {
- b->setText("123");//按一次就变名字
- }
-
- );
- resize(500,500);
-
- //以下是状态栏*********************
- QStatusBar *sBar =statusBar();//
- QLabel *lable = new QLabel(this);//新建一个标签
- lable->setText("Normal text file");//给标签一个名字
- sBar->addWidget(lable);//状态栏 添加一个控件
-
- //默认从左往右边添加
- sBar->addWidget(new QLabel("2",this)); // 状态栏添加一个控件 ,控件为2 且控件父对象是这个窗口
-
-
- //状态栏 添加控件,从右边往左边添加
- sBar->addPermanentWidget(new QLabel("3",this));
-
-
-
- //核心控件*********************************
- QTextEdit *textEdit =new QTextEdit(this);//文本编辑器指定父对象为this
- setCentralWidget(textEdit); //设计一个核心控件,为文本编辑器
-
-
- //浮动窗口
- QDockWidget *dock=new QDockWidget(this);//一个新的浮动窗口
- addDockWidget(Qt::RightDockWidgetArea,dock);//F1进去看填什么参数,点击参数枚举从中看到第一个参数例子
- //添加一个浮动窗口dock 放在右边
-
- //模态对话框,弹出的窗口,无法操作主窗口
- //非模态对话框,弹出的窗口,且可以操作主窗口;
-
- QMenu *menu =mBar->addMenu("对话框");
- QAction *p1= menu->addAction("模态对话框");
- connect(p1,QAction::triggered,
- [=]()
- {
- QDialog dlg;//一个对话框
- dlg.show();//显示对话框
-
- dlg.exec();//因为这个一直不退出,主窗口也不执行
- qDebug()<<"1111";
-
- }
-
- );
- QAction *p2= menu->addAction("非模态对话框");
- connect(p2,QAction::triggered,
- [=]()
- {
-
-
- //QDialog dlg;//一个对话框 这个因为会被释放,所以改成主窗口的成员在.h文件增加
- //或者 动态申请 对话框 QDialog *p_dlg = new QDialog(this);
- //动态申请 不好 如果多次进入非模块组,内存只会整个程序结束才释放。内存越来越少
- // QDialog *p_dlg = new QDialog(this);
- // p_dlg->show();
- // p_dlg->setAttribute(Qt::WA_DeleteOnClose,true);//F1进入,第一参,关闭的时候释放
-
- //QDialog dlg;//一个对话框 这个因为会被释放,所以改成主窗口的成员在.h文件增加
- dlg.show();//显示对话框
- // dlg.exec();//非模态不能用这个,会阻塞
- qDebug()<<"1111";
-
- }
-
- );
-
-
- //以下是文件对话框,和标准对话框***************
- //*************下面是标准对话框
- QAction *p3= menu->addAction("关于对话框");
- connect(p3,QAction::triggered,
- [=]()
- { //参 父类 标题 内容
- QMessageBox::about(this,"about","关于Qt");
-
- }
- );
-
- QAction *p4= menu->addAction("问题对话框");
- connect(p4,QAction::triggered,
- [=]()
- {
- int ret=QMessageBox::question(this,"question","are you OK?",//参 父类 标题 内容
- QMessageBox::Yes|QMessageBox::No);//指定对话框按钮,只能枚举内的
- switch (ret) {
- case QMessageBox::Yes:
- qDebug()<<"i am ok";
- break;
-
- case QMessageBox::No:
- qDebug()<<"i am bad";
- break;
- default:
- break;
- }
- }
- );
-
- //*************以下是文件对话框 *********
-
-
- QAction *p5= menu->addAction("文件对话框");
- connect(p5,QAction::triggered,
- [=]()
- { //获取打开文件名称 参 父类 标题 内容
- //返回为字符串 ,文件路径
- QString str =QFileDialog::getOpenFileName(
- this,"open","../",//父类,文本备注,上一级路径
- "souce(*.cpp *.h);;Text(*.txt);;all(*.*)"//过滤选项
- );
- qDebug()<<str;
- }
- );
-
-
-
-
- }
-
- MainWindow::~MainWindow()
- {
-
- }
QMessageBox::question(this,"question","are you OK?");使用F1进入帮助文档,
函数定义,有返回值
返回值枚举
共有成员如下
QString getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0)
如下是getOpenFileName解析和举例
参数 : 父类, 文本备注,路径文本类型 ,过滤类型文本;
打印出文件路径
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。