QT实现用本地资源管理器来打开文件夹

QString path="文件夹路径";
    QDesktopServices::openUrl(QUrl("file:"+path, QUrl::TolerantMode));

在windows中QT编程,使用资源管理器来打开指定本地文件夹的方法:

第一种:使用Qprocess命令(相当于在cmd命令管理窗口执行命令)

QString strLogPath = "start " + "你的文件夹所在目录";
QProcess process(this);
process.setProgram("cmd");//设置命令形式
QStringList argument;
argument << "/c" << strLogPath;//在cmd命令中,/c代表“执行完命令后返回”。它表示在执行完命令后,程序将返回到调用cmd的环境中。使用/c参数可以避免程序在执行过长命令时处于等待状态而呈现假死的现象。
process.setArguments(argument);
process.start();
process.waitForStarted(); //等待程序启动
process.waitForFinished();//等待程序关闭
  1. QString strLogPath = "start " + "你的文件夹所在目录";:这行代码创建了一个QString对象,该对象包含一个字符串,这个字符串是"start "(一个英文单词"start"后面跟着一个空格)和一个目录路径(例如:"你的文件夹所在目录")。这个路径应该是你想在其中启动新进程的目录。
  2. QProcess process(this);:这行代码创建了一个QProcess对象。QProcess类用于在Qt应用程序中启动外部进程。这里的this是指当前的Qt对象,通常用于将父窗口与子窗口关联起来。
  3. process.setProgram("cmd");:这行代码设置了要执行的程序。这里,它设置为"cmd",即Windows的命令行解释器。
  4. QStringList argument;:这行代码创建了一个QStringList对象,该对象将用于存储命令行参数。
  5. argument << "/c" << strLogPath;:这行代码向QStringList对象中添加了两个参数。"/c"是一个cmd命令行的选项,意思是执行完命令后返回。strLogPath是上面定义的包含文件夹路径的字符串。
  6. process.setArguments(argument);:这行代码将上面定义的参数列表设置到QProcess对象中。
  7. process.start();:这行代码启动了进程。
  8. process.waitForStarted();:这行代码会阻塞当前线程,直到进程开始运行。
  9. process.waitForFinished();:这行代码会阻塞当前线程,直到进程完成执行。

总结:这段代码会启动一个新的cmd窗口,并执行"/c"命令(执行完就返回),然后执行"start " + 你的文件夹所在目录命令(在cmd中打开指定目录)。然后程序会等待直到这个cmd进程执行完毕。

第二种方法:

使用QT的QDesktopServices的方法去实现,注意里面的这个"file"一定要保留,不然会报下面这个错误:

ShellExecute  路径  failed (error 2).

QString path="文件夹路径";
QDesktopServices::openUrl(QUrl("file:"+path, QUrl::TolerantMode));

使用 QDesktopServices::openUrl() 方法打开一个文件或URL。在这个方法中,需要传递一个 QUrl 对象。一种不同的方式是直接使用 QUrl 构造一个URL,然后传递给 openUrl() 方法。

*********************************QDesktopServices的补充***********************************************

DesktopServices 类提供用于访问常见桌面服务的方法。

许多桌面环境提供的服务可供应用程序用来执行常见任务,例如打开网页,其方式既一致又考虑了用户的应用程序首选项。

此类包含为这些服务提供简单接口的函数,这些接口指示它们是成功还是失败。

openurl() 函数用于打开位于外部应用程序中任意 URL 的文件。对于与本地申请系统上的资源相对应的URL(URL方案为“文件”),将使用合适的应用程序来打开文件;否则,将使用 Web 浏览器来获取和显示文件。

用户的桌面设置控制是打开某些可执行文件类型进行浏览,还是改为执行这些文件类型。某些桌面环境配置为阻止用户执行从非本地 URL 获取的文件,或者在执行之前请求用户的许可。

在用户桌面环境的相应 Web 浏览器中打开给定的,如果成功则返回;否则返回 。truefalse

如果 URL 是对本地文件的引用(即 URL 方案是“文件”),则将使用合适的应用程序而不是 Web 浏览器打开它。

以下示例在 Windows 文件系统上打开一个文件,该文件位于包含空格的路径上:

QDesktopServices::openUrl(QUrl("file:///C:/Program Files", QUrl::TolerantMode));

如果指定了 URL,则用户的电子邮件客户端将用于打开包含 URL 中指定选项的 composer 窗口,类似于 Web 浏览器处理链接的方式。mailtomailto

例如,以下 URL 包含收件人 recipient (), subject (), 和body ():user@foo.comTestJust a test

mailto:user@foo.com?subject=Test&body=Just a test

第三种方法:

除了 QDesktopServices::openUrl() 和使用 QProcess 启动外部程序之外,还可以使用其他一些方法来实现相同的功能,例如使用 QDir 类来访问文件系统并打开文件或目录。下面是一个使用 QDir 的例子:

#include <QDir>  
  
QString path = "文件夹路径";  
QDir dir(path);  
if (dir.exists()) {  
    dir.open();  
} else {  
    // 处理路径不存在的情况  
}

这个例子中,我们首先创建一个 QDir 对象,并传入要访问的路径。然后,我们使用 exists() 方法检查路径是否存在,如果存在,就使用 open() 方法打开该目录。这样,用户就可以在文件管理器中直接打开指定的目录。

#AI诈骗进入高发期,普通人该如何防范?#

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/111297.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试C#调用Aplayer播放视频(2:VideoPlayer源码学习)

参考文献1除了介绍Aplayer组件的用法之外&#xff0c;还提供有demo下载以供学习&#xff0c;本文学习并记录其中的使用方式。   VideoPlayer项目使用C#在VS2013开发&#xff0c;其解决方案中包括VideoPlayer和VideoPlayer两个小项目&#xff0c;前者基于.net framework4.0&am…

【数据分析】上市公司半年报数据分析

前言 前文介绍过使用网络技术获取上市公司半年报数据的方法&#xff0c;本文将对获取到的数据进行简要的数据分析。 获取数据的代码介绍在下面的两篇文章中 【java爬虫】使用selenium获取某交易所公司半年报数据-CSDN博客 【java爬虫】公司半年报数据展示-CSDN博客 全量数…

C#开发DLL,CAPL调用(CAPL>> .NET DLL)

文章目录 展示说明新建类库工程C# 代码生成dllCAPL脚本调用dll,输出结果展示 ret为dll里函数返回的值。 说明 新建类库工程 在visual studio中建立。 C# 代码 using

Python构造代理IP池提高访问量

目录 前言 一、代理IP是什么 二、代理IP池是什么 三、如何构建代理 IP 池 1. 从网上获取代理 IP 地址 2. 对 IP 地址进行筛选 3. 使用筛选出来的 IP 地址进行数据的爬取 四、总结 前言 爬虫程序是批量获取互联网上的信息的重要工具&#xff0c;在访问目标网站时需要频…

启动Vue项目报错Error: error:0308010C:digital envelope routines::unsupported

问题描述 启动Vue项目报错Error: error:0308010C:digital envelope routines::unsupported 出现这个一般就是node版本的问题&#xff0c;通过命令查看node -v查看node版本&#xff1b; 百度查了好多&#xff0c;都让我降低node版本&#xff0c;属实太麻烦了 在不改node版本的…

[论文笔记]BGE

引言 今天介绍论文BGE,是智源开源的语义向量模型,BAAI General Embedding。 作者发布了C-Pack,一套显著推进中文嵌入领域的资源包。包括三个重要资源: 1) C-MTEB是一个全面的中文文本嵌入基准,涵盖了6个任务和35个数据集。 2) C-MTP是一个从标记和未标记的中文语料库中选…

均值、方差、标准差

1 中间值和均值 表现&#xff02;中间值&#xff02;的统计名词&#xff1a; a.均值:   mean&#xff0c;数列的算术平均值&#xff0c;反应了数列的集中趋势,等于有效数值的合除以有效数值的个数&#xff0e;b.中位值:  median&#xff0c;等于排序后中间位置的值&#x…

c++11新特性

文章目录 1. C11简介2. 统一的列表初始化2.1 &#xff5b;&#xff5d;初始化2.2 std::initializer_list 3. 声明3.1 auto3.2 decltype3.3 nullptr 4 范围for循环5. STL中一些变化 1. C11简介 2003年&#xff0c;C标准委员会提交了技术勘误表&#xff08;TC1&#xff09;&…

Python的错误和异常处理

一、错误和异常 编程中出现的错误大致可以分为两类&#xff1a;错误和异常。 (一)错误 错误又可以分为两类&#xff1a;语法错误和逻辑错误。 1. 语法错误 语法错误又称解析错误&#xff0c;它是指在编写程序时&#xff0c;程序的语法不符合Python语言的规范&#xff0c;导致…

BI零售数据分析,告别拖延症,及时掌握一线信息

在日常的零售数据分析中&#xff0c;经常会因为数据量太大&#xff0c;分析指标太多且计算组合多变而导致数据分析报表难产&#xff0c;零售运营决策被迫拖延症。随着BI数据可视化分析技术的发展&#xff0c;智能化、可视化、自助分析的BI数据分析逐渐成熟&#xff0c;形成一套…

如何使用navicat图形化工具远程连接MariaDB数据库【cpolar内网穿透】

公网远程连接MariaDB数据库【cpolar内网穿透】 文章目录 公网远程连接MariaDB数据库【cpolar内网穿透】1. 配置MariaDB数据库1.1 安装MariaDB数据库1.2 测试局域网内远程连接 2. 内网穿透2.1 创建隧道映射2.2 测试随机地址公网远程访问3. 配置固定TCP端口地址3.1 保留一个固定的…

Vue项目搭建及使用vue-cli创建项目、创建登录页面、与后台进行交互,以及安装和使用axios、qs和vue-axios

目录 1. 搭建项目 1.1 使用vue-cli创建项目 1.2 通过npm安装element-ui 1.3 导入组件 2 创建登录页面 2.1 创建登录组件 2.2 引入css&#xff08;css.txt&#xff09; 2.3 配置路由 2.5 运行效果 3. 后台交互 3.1 引入axios 3.2 axios/qs/vue-axios安装与使用 3.2…

Webpack常见的插件和模式

文章目录 一、认识插件Plugin1.认识Plugin 二、CleanWebpackPlugin三、HtmlWebpackPlugin1.生成index.html分析2.自定义HTML模板3.自定义模板数据填充 四、DefinePlugin1.DefinePlugin的介绍2.DefinePlugin的使用 五、Mode配置 一、认识插件Plugin 1.认识Plugin Webpack的另一…

【HMS Core】机器学习服务热门问题合集

【关键词】 机器学习服务、文本识别、身份证识别 【问题描述1】 机器学习服务的文本识别能力&#xff0c;是否支持草书等&#xff1f; 【解决方案】 草书是不支持的&#xff0c;目前建议使用较为规范的字体测试。 【问题描述2】 机器学习服务是否支持训练模型&#xff1f;…

Flink on yarn 加载失败plugins失效问题解决

Flink on yarn 加载失败plugins失效问题解决 flink版本&#xff1a;1.13.6 1. 问题 flink 任务运行在yarn集群,plugins加载失效,导致通过扩展资源获取任务参数失效 2. 问题定位 yarn容器的jar包及插件信息,jar包是正常上传 源码定位 加载plugins入口&#xff0c;TaskMana…

Mysql权限控制语句

1.创建用户 create user ky32localhost IDENTIFIED by 123456 create user&#xff1a;创建用户开头 ky32&#xff1a;用户名 localhost 新建的用户可以在哪些主机上登录 即可以使用ip地址&#xff0c;网段主机名 ky32localhost ky32192.168.233.22 ky32192.168.233.0/2…

如何在mac 安装 cocos 的 android环境

基本概念&#xff1a; Java: Java 是一种编程语言&#xff0c;由Sun Microsystems&#xff08;现在是 Oracle Corporation&#xff09;开发。Java 是一种跨平台的语言&#xff0c;可以用于开发各种应用程序&#xff0c;包括 Android 应用程序。Android 应用程序的核心代码通常用…

在 Visual Studio 中远程调试 C++ 项目

目录 一、说明二、下载远程工具1. 官网下载2. 自己电脑上拷贝 三、 运行远程工具四、本机Visual Studio配置五、自动部署 一、说明 参考官方文档&#xff1a;https://learn.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging-cpp?viewvs-2022 二、下载远程工具 …

AutoX.js - openCV多分辨率找图

AutoX.js - openCV多分辨率找图 一、起因 AutoXjs 中有两个找图相关的方法 findImage 和 matchTemplate&#xff0c;之前一直没发现什么问题&#xff0c;但最近在一次测试找图时&#xff0c;明明大图和模板图的轮廓都清晰&#xff0c;却怎么也找不到图&#xff0c;降低阈值参…

vue-resource发送数据请求

vue-resource是Vue用于发送数据请求的一个插件库&#xff0c;在Vue1.0版本时使用比较频繁&#xff0c;现在Vue作者更支持使用axios进行数据发送。 一、安装vue-resource库 npm i vue-resource 二、使用vue-resource插件 使用插件之前需要先对插件进行引入 三、使用$http发送…