Qt双击某一文件通过自己实现的程序打开,并加载文件显示

双击启动

      • 简述
      • 方法一
      • 方法二
      • 注意

简述

在Windows系统中,双击某类扩展名的文件,通过自己实现的程序打开文件,并正确加载及显示文件。有两种方式可以到达这个目的。
对于系统不知道的扩展名的文件,第一次打开时,需要自行设置打开方式。
设置流程:
右键或双击文件->打开方式,弹出以下界面
在这里插入图片描述
点击“在这台电脑上查找其他应用”,选择自己的可执行程序即可。

方法一

方法一是通过参数个数及参数进行设置双击启动。

// #include <QElapsedTimer>
int main(int argc, char *argv[])
{QApplication a("ExcelEdit", argc, argv);MainWindow w;// 通过参数个数及参数进行设置双击启动{if(argc > 1){QString strOpenPath = QString(argv[1]);if(!strOpenPath.isEmpty()){// 将“\”转换成"/",因为"\"系统不认strOpenPath = strOpenPath.replace("\\", "/");// 具体实现在下面这个函数w.load(strOpenPath);}}}w.showMaximized();return a.exec();
}

通过以上配置,再实现load()函数,就可双击打开某一扩展名的文件。

方法二

方法二是通过注册表实现双击打开方式,具体实现如下,代码可复制运行。

#include "mainwindow.h"
#include <QApplication>
#include <QSettings>void dectionRegedit(const QString& strClassName, const QString& strAppPath, const QString& strExt, const QString& strExtDescri)
{QString strBaseUrl("HKEY_CURRENT_USER\\Software\\Classes");QSettings setting(strBaseUrl, QSettings::NativeFormat);setting.setValue("/" + strClassName + "/Shell/Open/Command/.", "\"" + strAppPath + "\" \"%1\"");setting.setValue("/" + strClassName + "/.", strExtDescri);setting.setValue("/" + strClassName + "/DefaultIcon/.", strAppPath + ",0");// 关联ext 和 类别setting.setValue("/" + strExt + "/OpenWithProgIds/" + strClassName, "");// 立即保存该修改setting.sync();
}int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;if(argc > 1){// 具体实现w.load(argv[1]);}w.show();// 通过注册表实现QString strAppPath = QApplication::applicationDirPath().append("/debug/doubleClickedFileTest0822.exe");strAppPath.split("/").join("\\");QString strClassName("MainWindow");QString strExt(".txt");QString strExtDescri("fileTest 工程文件");dectionRegedit(strClassName, strAppPath, strExt, strExtDescri);return a.exec();
}

注意

一定要注意路径。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何理解α、β一类错误和二类错误?

原假设 H0&#xff1a;一般是想要推翻的结论&#xff0c;如指标没有变化&#xff0c;实验组和对照组的该结果指标没有差异等。 备择假设 H1&#xff1a;一般是想要证明的结论&#xff0c;如实验组的指标是显著提升的&#xff0c;指标提升10%等。 弃真错误/一类错误/显著性水平…

边缘计算节点BEC典型实践:如何快速上手PC-Farm服务器?

百度智能云边缘计算节点BEC&#xff08;Baidu Edge Computing&#xff09;基于运营商边缘节点和网络构建&#xff0c;一站式提供靠近终端用户的弹性计算资源。边缘计算节点在海外覆盖五大洲&#xff0c;在国内覆盖全国七大区、三大运营商。BEC通过就近计算和处理&#xff0c;大…

Grafana Dashboard 备份方案

文章目录 Grafana Dashboard 备份方案引言工具简介支持的组件要求配置备份安装使用 pypi 安装grafana备份工具配置环境变量使用Grafana Backup Tool 进行备份恢复备份 Grafana Dashboard恢复 Grafana Dashboard结论Grafana Dashboard 备份方案 引言 每个使用 Grafana 的同学都…

2023前端面试笔记 —— HTML5

系列文章目录 内容链接2023前端面试笔记HTML5 文章目录 系列文章目录前言一、HTML 文件中的 DOCTYPE 是什么作用二、HTML、XML、XHTML 之间有什么区别三、前缀为 data- 开头的元素属性是什么四、谈谈你对 HTML 语义化的理解五、HTML5 对比 HTML4 有哪些不同之处六、meta 标签有…

守护进程(精灵进程)

目录 前言 1.如何理解前台进程和后台进程 2.守护进程的概念 3.为什么会存在守护进程 4.如何实现守护进程 5.测试 总结 前言 今天我们要介绍的是关于守护进程如何实现&#xff0c;可能有小伙伴第一次听到守护进程这个概念&#xff0c;感觉很懵&#xff0c;知道进程的概念&…

yolo笔记

目录 输入端Mosaic数据增强数据增强Copy-paste数据增强- MixUp数据增强- Albumentations数据增强- Augment HSV (Hue, Saturation, Value)色度、饱和度、浓度数据增强- Random horizontal flip自适应锚框计算自适应图片缩放 BackboneFocus结构CSP结构CSP结构Neck 损失函数IOU_L…

使用 Feature Flags 与可观测工具实现数据库灰度迁移

场景描述 很多企业会遇到数据库升级、或数据库迁移的情况&#xff0c;尤其是在自建数据库服务向云数据库服务、自建机房向云机房、旧数据库向新数据库迁移等场景。 然而&#xff0c;我们需要在整个移植过程中保证其稳定性、避免数据遗失、服务宕机等情况&#xff0c;最常见的移…

【项目 计网6】 4.17 TCP三次握手 4.18滑动窗口 4.19TCP四次挥手

文章目录 4.17 TCP三次握手4.18滑动窗口4.19TCP四次挥手 4.17 TCP三次握手 TCP 是一种面向连接的单播协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务器的内存里保存的一份关于对方的信息&#xff…

从其他地方复制的内容无法粘贴到idea中

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 使用 idea 开发的时候&#xff0c;从其他地方复制的内容无法粘贴到 idea中&#xff0c;idea的版本是 2023.2 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; 网上查找资料…

搭建Tomcat HTTP服务:在Windows上实现外网远程访问的详细配置与设置教程

文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器&#xff0c;不仅名字很有趣&#xff0…

vue3——递归组件的使用

该文章是在学习 小满vue3 课程的随堂记录示例均采用 <script setup>&#xff0c;且包含 typescript 的基础用法 一、使用场景 递归组件 的使用场景&#xff0c;如 无限级的菜单 &#xff0c;接下来就用菜单的例子来学习 二、具体使用 先把菜单的基础内容写出来再说 父…

点亮社交新篇章:探索 WeTalk 新增的头像与群聊功能

目录 引言&#xff1a; 引入头像功能&#xff1a; 头像功能的优势&#xff1a; 引入群聊功能&#xff1a; 群聊功能的优势&#xff1a; 引入头像功能&#xff1a; 查看头像&#xff1a; ​编辑 上传头像&#xff1a; 引入群聊功能&#xff1a; 创建群聊&#xff1a…