Qt 利用XML文档,写一个程序集合 二
接上一篇文章https://www.cnblogs.com/DreamDog/p/9213915.html
XML文档的读写
一个根节点,下面每一个子节点代表一个子程序,内容为子程序名字,图标路径,exe路径
- /*
- * 读取XML配置文档
- */
- static int count_flag = 0;
- void MainWindow::read_XML()
- {
- QFile file("./subroutine/config.xml"); //引用文件路径
- if(!file.open((QFile::ReadOnly | QFile::Text))) //只读文本方式打开
- {
- QMessageBox::information(NULL,"Title","OpenFile false"); //如果打开失败则提示
- }
- /*
- * 装在XML文件内容到内存
- */
- QDomDocument doc;
- doc.setContent(&file);
- file.close();
- QDomElement root = doc.documentElement();
- QDomNode node = root.firstChild();
- QString name = "asd";
- QString iconpath;
- QString exepath;
- while (!node.isNull())
- {
- QDomElement element = node.toElement();
- if(!element.isNull())
- {
- QDomNamedNodeMap list = element.attributes();
- for(int i = 0;i<list.count();i++)
- {
- if(list.item(i).nodeName() == "name")
- {
- name = list.item(i).nodeValue();
- }
- else if (list.item(i).nodeName() == "iconpath")
- {
- iconpath = list.item(i).nodeValue();
- }
- else if (list.item(i).nodeName() == "exepath")
- {
- exepath = list.item(i).nodeValue();
- }
- }
- }
- // QPushButton *button = new QPushButton(name, this);
- // button->setIcon(QIcon(iconpath));
- // button->show();
- // connect(button,&QPushButton::clicked,[=]()
- // {
- // QProcess *myProcess = new QProcess(this);
- // myProcess->startDetached(exepath);
- // });
- MPushButton *button = new MPushButton(this);
- button->set_name(name);
- button->set_ICON(iconpath);
- button->show();
- connect(button,&MPushButton::clicked,[=]()
- {
- QProcess *myProcess = new QProcess(this);
- myProcess->startDetached(exepath);
- });
- flowLayout->addWidget(button);
- node = node.nextSibling();
- count_flag++;
- if(count_flag-35>0)
- {
- showWidgt->setGeometry(0,0,ui->widget_main->width(),ui->widget_main->height()+100*((count_flag-35)/7+1));
- }
- }
- }
以上代码为读取XML部分,
可以参考https://blog.csdn.net/z609932088/article/details/71694709
Qt 利用XML文档,写一个程序集合 二的更多相关文章
- Qt 利用XML文档,写一个程序集合 一
接到领导需求安排,说公司未来的硬件设备会越来越多,与每个设备对应的设备检测和设置程序也会增多.导致软甲太多,不好掌控.所以希望做一个完整的软件,但是呢,每个子程序还得独立,应为每个用户购买的设备不是一 ...
- Qt 利用XML文档,写一个程序集合 四
接上一篇https://www.cnblogs.com/DreamDog/p/9214067.html 启动外部程序 这里简单了,直接上代码吧 connect(button,&MPushBut ...
- Qt 利用XML文档,写一个程序集合 三
接上一篇https://www.cnblogs.com/DreamDog/p/9214052.html 滚动区域实现, 滚动区域可以三成分层 第一层,显示内容 中间层,滚动层 第三层,爸爸层 把我们要 ...
- 【HTML/XML 10】XML文档中的Schema文件
导读:DTD是对XML文档进行有效性验证的方法之一,事实上,继DTD之后,出现了用来规范和描述XML文档的第二代标准:Schema.Schema是DTD的继承,但是也有其不同的地方,它是真正的以独立的 ...
- Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...
- xml文档读取-SAX
由于dom采用的是将xml文档加载入内存进行处理的方式,如果xml文档较大,则会导致加载时间过长,效率降低的情况,因此,sun公司在JAXP中又添加了对SAX的支持: SAX,全称Simple API ...
- Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术
一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...
- XML文档处理
1)CDATA部分用<![CDATA[和]]>来限定其界限,它们是字符数据的一种特殊形式,可用使用它们来囊括那些含有<.>,&之类字符的字符串,而不必将它们解释为标记例 ...
- java: (正则表达式,XML文档,DOM和DOM4J解析方法)
常见的XML解析技术: 1.DOM(基于XML树结构,比较耗资源,适用于多次访问XML): 2.SAX(基于事件,消耗资源小,适用于数量较大的XML): 3.JDOM(比DOM更快,JDOM仅使用具体 ...
随机推荐
- robotframwork数据库测试(一)——pymysql与pyodbc
本章节仅总结一下使用pymysql与pyodbc链接MySQL数据库. 2个都可以链接mysql数据,进行增删改查.但是呢,使用pyodbc操作数据库,对中文支持度好一些.pymysql则需要处理一下 ...
- 安装IIS步骤图解
这几日好些网友来找iis安装包,但是因为新浪爱问的共享资料已关闭导致下载链接不可用,笔者在新浪微盘的备份资料只有5.1版,现共享链接如下: IIS5.1 for windows xp下载链接http: ...
- 一次傻叉的安装ubuntu虚拟机记录
因为最近要做一些开发工作,涉及到游戏前后端到的开发,在将代码上传到github之前,所有开发版本的源文件都保存在我的虚拟机svn仓库.所以,就装了两台虚拟机,一台用作svn仓库以及git同步与更新,另 ...
- 苹果编程语言Swift简介
Swift是什么? Swift是苹果于WWDC 2014发布的编程语言,The Swift Programming Language的原话: Swift is a new programming la ...
- JavaScript小练习1-控制div属性
题目 要实现的效果如图所示:查看演示 *** 分析 乍一看还以为十分简单,就是简单的点击button时触发的函数来改变样式值,不过做到后面就开始打脸了--"重置"功能.其实要实现重 ...
- 转:SQLServer中的GROUPING,ROLLUP和CUBE
转自:https://www.cnblogs.com/nikyxxx/archive/2012/11/27/2791001.html 聚集函数:GROUPING 用于汇总数据用的运算符: ROLLUP ...
- c++高精度计算(加法)
本文提供给刚入坑的新手 关于高精度的计算网上百度一下可以了解到许多 今天我分享的只是一些自己的心得,更详细的可以去看原博主的原创文章(https://blog.csdn.net/fanyun_01/a ...
- Linux下onvif客户端获取ipc摄像头 GetProfiles:获取h265媒体信息文件
GetProfiles:获取媒体信息文件 鉴权:但是在使用这个接口之前是需要鉴权的.ONVIF协议规定,部分接口需要鉴权,部分接口不需要鉴权,在调用需要鉴权的接口时不使用鉴权,会导致接口调用失败.实现 ...
- Spring支持的常用数据库事务传播属性和隔离级别
事务的四大特征:原子性,隔离性,持久性,一致性 spring提供了7种事务传播属性: 一个事务与其他事务的隔离程度称为隔离级别.不同隔离级别对应不同的干扰程度,隔离级别越高,数据一致性就越好,但并发性 ...
- Windows常用shell命令
一.Windows的Shell命令又是Windows的CMD命令.而cmd命令又是原来MS-DOS系统保留下来 二.Windows Shell命令是基于配置好的Path环境变量,对Shell命令在Pa ...