Qt QFileDialog实现文件选择对话框
来源:互联网 发布:西门子ug软件侵权 编辑:程序博客网 时间:2024/05/18 02:16
目标:
使用Qt开发,能够点击菜单栏-打开文件,多选文件,获取并输出每个文件的路径
环境:
我在Qt项目中已经建立好了菜单栏,并为菜单栏关联好了动作的信号和槽,方法参考:http://blog.csdn.net/qiurisuixiang/article/details/7769640
使用Qt的QFileDialog类,实现文件选择对话框多选文件的功能,参考Qt 官方文档:http://doc.qt.io/qt-5/qfiledialog.html
实现:
mymenu.h
#ifndef MYMENU_H#define MYMENU_H#include "QMainWindow"class mymenu : public QMainWindow{ Q_OBJECT // must include this if you use Qt signals/slotspublic: //构造函数 explicit mymenu(QWidget *parent = 0);//QWidget *parent = 0 表示mymenu控件不是任何控件的子控件private slots: void fileOpenActionSlot();//打开文件动作对应的槽函数private: void createAction(); //创建动作 void createMenu(); //创建菜单 void createContentMenu();//创建上下文菜单 void selectFile(); //弹出选择文件对话框private: QAction *fileOpenAction; //创建一个QAction指针,打开文件动作 QMenu *menu; //创建一个QMenu指针};#endif // MYMENU_Hmymenu.cpp
#include "mymenu.h"#include "QMenu"#include "QMenuBar"#include "QAction"#include "QMessageBox"#include "QFileDialog"#include "QDebug"/***************************************** Qt中创建菜单和工具栏需要如下步骤:* 1. 建立行为Aciton* 2. 创建菜单并使它与一个行为关联* 3. 创建工具条并使它与一个行为关联*****************************************/mymenu::mymenu(QWidget *parent):QMainWindow(parent){ createAction(); createMenu(); createContentMenu(); this->resize(300,400);}void mymenu::createAction(){ //创建打开文件动作 fileOpenAction = new QAction(tr("打开文件"),this); //摄者打开文件的快捷方式 fileOpenAction->setShortcut(tr("Ctrl+O")); //设置打开文件动作提示信息 fileOpenAction->setStatusTip("打开一个文件"); //关联打开文件动作的信号和槽 connect(fileOpenAction,SIGNAL(triggered()),this,SLOT(fileOpenActionSlot()));}void mymenu::createMenu(){ menu = this->menuBar()->addMenu(tr("文件")); menu->addAction(fileOpenAction);}void mymenu::createContentMenu(){ this->addAction(fileOpenAction); this->setContextMenuPolicy(Qt::ActionsContextMenu);}void mymenu::fileOpenActionSlot(){ //QMessageBox::warning(this,tr("提示"),tr("打开文件"),QMessageBox::Yes|QMessageBox::No); selectFile();}/***************************************** Qt中使用文件选择对话框步骤如下:* 1. 定义一个QFileDialog对象* 2. 设置路径、过滤器等属性*****************************************/void mymenu::selectFile(){ //定义文件对话框类 QFileDialog *fileDialog = new QFileDialog(this); //定义文件对话框标题 fileDialog->setWindowTitle(tr("打开图片")); //设置默认文件路径 fileDialog->setDirectory("."); //设置文件过滤器 fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)")); //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles fileDialog->setFileMode(QFileDialog::ExistingFiles); //设置视图模式 fileDialog->setViewMode(QFileDialog::Detail); //打印所有选择的文件的路径 QStringList fileNames; if(fileDialog->exec()) { fileNames = fileDialog->selectedFiles(); } for(auto tmp:fileNames) qDebug()<<tmp<<endl;}main.cpp
#include "mymenu.h"#include <QApplication>#include <QProcess>#include <QMessageBox>int main(int argc, char *argv[]){ QApplication a(argc, argv); mymenu m_menu; m_menu.show(); return a.exec();}
效果:
Qt工程下载地址:http://download.csdn.net/detail/v_xchen_v/9838487
0 0
- Qt QFileDialog实现文件选择对话框
- Qt中 文件对话框QFileDialog 的使用
- Qt中 文件对话框QFileDialog 的使用
- QT——文件对话框QFileDialog
- Qt中 文件对话框QFileDialog 的使用
- [QT]QFileDialog关于选择文件对话框中的几个信号的说明
- 文件对话框(QFileDialog)
- Qt标准对话框之QFileDialog
- Qt标准对话框之QFileDialog
- Qt标准对话框之QFileDialog
- Qt标准对话框之QFileDialog
- QT选择文件对话框实现多种类型文件匹配过滤
- 文件对话框QFileDialog 的使用
- PyQt5:QFileDialog文件对话框(22)
- PyQt5打开文件对话框QFileDialog
- Qt学习之十二:标准对话框之二QFileDialog文件对话框
- 九、Qt文件选择对话框
- QFileDialog 选择多个文件
- SQL Server 错误日志(ErrorLog)
- 玩转Android之数据库框架greenDAO3.0使用指南
- SpringMvc整合Spring
- Linux音频设备驱动_OSS驱动框架(三)————mixer接口 和 dsp接口
- L1-011. A-B
- Qt QFileDialog实现文件选择对话框
- c/c++ typedef用法功能详解
- 书写一个发送邮件类
- Python转义字符
- 百万级数据查询优化之in
- 杭电2209 翻纸牌游戏 DFS BFS 搜索
- cocos-js,数据本地存储
- BCP 数据的导入和导出
- Python学习随机(第二弹)