汕头网站建设技术支持,网址生成短链接,wordpress百度秀,专业做书画推广的网站1. 实现打开文件列表选择文件
1.1. 创建 Qt 工程#xff0c;并添加几个简单控件
这里笔者选用的是 QMainWindow#xff0c;创建好工程后在 ui 界面设计中添加 QLineEdit、QPushBtton至少这两个控件#xff0c;如下图摆放。 1.2. 头文件中添加相关操作
在 mainwindow.h 中…1. 实现打开文件列表选择文件
1.1. 创建 Qt 工程并添加几个简单控件
这里笔者选用的是 QMainWindow创建好工程后在 ui 界面设计中添加 QLineEdit、QPushBtton至少这两个控件如下图摆放。 1.2. 头文件中添加相关操作
在 mainwindow.h 中添加所要用到的所有头文件。
#include QString
#include QFileDialog
#include QStandardPaths并声明一个槽函数用于打开文件浏览器。
private slots:void showFiles(void); // 用于打开文件浏览器public:void initUi(void); // 初始化 UI 界面private:QString *fileName; // 用于保存文件路径1.3. 在 cpp 文件中实现
initUi 函数实现如下
void ExcelProcess::initUi()
{this-ui-Lab_FilePath-setText(File Path:);this-ui-PBtn_View-setText(Open File);connect(this-ui-PBtn_View, SIGNAL(clicked()), this, SLOT(showFiles()));}showFiles 槽函数实现如下
void ExcelProcess::showFiles()
{QString str QFileDialog::getOpenFileName(this, File Explorer, QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),Excel 文件(*.xls *.xlsx);;All file(*.*));this-ui-LEdit_FilePath-setText(str.toUtf8());*this-fileName this-ui-LEdit_FilePath-text();qDebug() *this-fileName \n;
}1.4. 效果演示
完成如上函数并在构造函数中调用即可运行查看效果。 2. 实现文件拖拽的方式加载
我们常常见到涉及文件选择的软件他们都会支持拖拽的方式选择由于这样的文件选取方式高度的人性化因此大多数软件都会提供这样的功能。下面就来看看用 Qt 如何实现吧。
2.1. 添加相关头文件并声明相关操作函数
添加头文件
#include QDragEnterEvent
#include QDropEvent
#include QMimeData这里是通过重写下面两个函数来实现文件拖拽功能
protected:void dragEnterEvent(QDragEnterEvent *event); // 拖动进入事件void dropEvent(QDropEvent *event); // 放下事件2.2. 在 cpp 文件中实现其具体功能
在构造函数中添加如下代码
this-setAcceptDrops(true); // 设置主界面接收拖动进来的文件拖动函数重写
void ExcelProcess::dragEnterEvent(QDragEnterEvent *event)
{// 这里对拖拽文件进行筛选仅支持 xls 或 xlsx 文件用 compara 函数比较文件后缀if ((!event-mimeData()-urls()[0].fileName().right(3).compare(xls)) || (!event-mimeData()-urls()[0].fileName().right(4).compare(xlsx))) {event-acceptProposedAction();} else {event-ignore(); // 若非这两种文件则不接受鼠标事件}return ;
}void ExcelProcess::dropEvent(QDropEvent *event)
{const QMimeData *qm event-mimeData();*this-fileName qm-urls()[0].toLocalFile(); // 获取拖入的文件名this-ui-LEdit_FilePath-setText(*this-fileName);this-movie_01-stop();this-movie_01-setFileName(:/bk/pic/bk_02.gif);this-movie_01-start();return ;
}2.3. 效果演示
完成如上函数运行查看效果。 #完