QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框
Posted doker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于QT+ 使用标准对话框+关于对话框+问题对话框+文件对话框的主要内容,如果未能解决你的问题,请参考以下文章