Qt开发记录2——功能开发——按钮-打开缓存(打开本地文件夹)

链接1: qt程序实现打开文件夹.
链接2: QT5 利用QDesktopServices打开本地文件或文件夹.

打开缓存(打开本地文件夹)

需求:选中扫描到本地的图片文件后,打开文件所在文件夹。

在UI界面拖拽一个按钮控件

在这里插入图片描述

转到槽

右键,选中转到槽。
在这里插入图片描述
弹出框,选中clicked(),点击OK
在这里插入图片描述

跳转到槽函数编写代码

在这里插入图片描述
编写代码

// 打开缓存文件夹
void MainWindow::on_openCache_clicked()
{
    // 获取当前目录项
    QTreeWidgetItem *dirItem = ui->treeWidget_DocDir->currentItem();
    // 获取目录项基础路径
    QString dirPath = m_docdirmgt->getDocItemBaseDir(dirItem);
    if (nullptr == dirPath) {
        QMessageBox::information(this, "信息", "请选择图片目录", QMessageBox::Ok,QMessageBox::NoButton);
        return;
    }
    // 打开路径对应目录
    qDebug()<<"打开缓存路径:"<<dirPath;
    QDesktopServices::openUrl(QUrl("file:///"+dirPath));
}
### Linux 下使用 Qt 实现按钮事件打开文件夹功能 以下是基于所提供的引用内容以及相关技术知识完成的一个完整示例代码,展示如何在 Linux 环境下通过 Qt 的 `QPushButton` 和 `QProcess` 来实现点击按钮打开指定文件夹功能。 #### 示例代码 ```cpp #include <QApplication> #include <QMainWindow> #include <QPushButton> #include <QProcess> class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { QPushButton *button = new QPushButton("Open Folder", this); setCentralWidget(button); connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked); // 连接信号和槽[^2] } private slots: void onButtonClicked() { showMinimized(); // 将窗口最小化[^1] QString folderPath = "/path/to/your/folder"; // 替换为目标文件夹路径 QStringList arguments; arguments << folderPath; QProcess process; // 使用 QProcess 启动外部程序 process.startDetached("xdg-open", arguments); // 调用 xdg-open 命令 } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.resize(300, 200); // 设置窗口大小 window.setWindowTitle("Open Folder Example"); // 设置窗口标题 window.show(); return app.exec(); } #include "main.moc" ``` --- #### 解析 1. **创建主窗口** 定义了一个名为 `MainWindow` 的类,该类继承自 `QMainWindow`。在构造函数中,创建了一个 `QPushButton` 并将其作为中央部件设置到窗口中。 2. **连接信号与槽** 使用 `connect()` 函数将按钮的 `clicked` 信号连接至 `onButtonClicked` 槽函数。这一步实现了当按钮被点击时触发特定的操作。 3. **槽函数逻辑** 在 `onButtonClicked` 槽函数中: - 首先调用了 `showMinimized()` 方法,使当前窗口最小化。 - 接着定义目标文件夹路径 `/path/to/your/folder`,并将此路径传递给 `QProcess::startDetached` 方法中的参数列表。 - 利用 `QProcess` 类启动外部进程,执行 `xdg-open` 命令以打开指定文件夹。 4. **编译与运行** 可以使用 Qt Creator 创建一个新的项目,并按照提示选择合适的编译器(如 MinGW 或 GCC)。随后将上述代码复制到项目的源文件中,配置好项目环境后即可编译并运行[^4]。 --- #### 注意事项 - 如果需要更改要打开的目标文件夹,请修改变量 `folderPath` 中的内容为实际路径。 - 确保系统已安装支持 `xdg-open` 的工具链;如果未安装,则需手动安装对应的包管理器软件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小言W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值