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仅使用具体 ...
随机推荐
- 编程中关于对时区的理解(语言PHP)
时间戳 首先来说说time()返回的时间戳,时间戳则是自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数. 格林威治 由于地球圆的,因此每个时区的时间 ...
- 在Ubuntu 18.04中安装Oracle Java JDK 8
Webupd8 Team维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 8安装程序脚本. 1.打开终端并运行命令添加PPA: sudo add-apt-repos ...
- 配置tomcat的用户名和密码
<role rolename="manager-gui"/> <role rolename="manager-script"/> < ...
- iOS:多媒体(18-01-25更)
1.音频 2.视频 1. 2.AVPlayer 1.音频 2.视频 1. 2.AVPlayer 0).写在前面 AVPlayer 主要包含 AVPlayer.AVPlayerItem.AVPlayer ...
- HTML5 添加视频和音频(响应式视频)
最初的 HTML5规范呼吁所有浏览器内置支持使用 Ogg格式① 直接播放视频或音频(无需插件).但是由于 HTML5工作组的内部争议,曾经作为基线标准的支持 Ogg(包括 Theoravideo 和 ...
- MongoDB可视化工具RoboMongo
官网下载安装包:https://robomongo.org/download (开始使用的是mongoVUE,研究半天,最后发现貌似已经挂掉了,坑!后来上手的robomongo) 安装没什么说的,一直 ...
- PHP获取一篇文章内容中的全部图片,并下载
- 大数据分析系统Hadoop的13个开源工具
Hadoop是由Apache基金会开发的一个大数据分布式系统基础架构,最早版本是2003年原Yahoo!DougCutting根据Google发布的学术论文研究而来. 用户可以在不了解分布式底层细节的 ...
- Jlink-10 pin 的定义(stm32使用)官方定义
因为在网上找了好久才找到正确的接法,所以专门记载了下来,因为stm32芯片这几个功能引脚会内置上拉电阻,所以不需要再外接电阻了.
- 使用ofstream输出unicode
void saveWideFileHead(std::ofstream& out)// 写入文件内容前,先写入BOM { char const* const utf16head = " ...