Qt 利用XML文档,写一个程序集合 二

简介: 接上一篇文章https://blog.csdn.net/z609932088/article/details/80774663XML文件的读写

image.png

/*
 * 读取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

目录
相关文章
|
3月前
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
130 7
使用Java和XPath在XML文档中精准定位数据
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
89 0
|
4月前
|
Linux iOS开发 开发者
Qt问题(二):无法定位程序输入点于动态链接库
动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,常见于Windows操作系统中,而在Linux和macOS等其他操作系统中,相似的概念通常被称为共享库(Shared Library)。动态链接库允许程序在运行时加载所需的代码和数据,而不是在编译时静态链接到应用程序中。这种方式带来了几个重要的优点:
462 3
|
2月前
|
C语言 Android开发 C++
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
本文介绍了使用MTuner软件进行Qt MinGW编译程序的内存泄漏检测的方法,提供了MTuner的下载链接和测试代码示例,并通过将Debug程序拖入MTuner来定位内存泄漏问题。
基于MTuner软件进行qt的mingw编译程序的内存泄漏检测
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
80 0
|
4月前
|
调度
【浅入浅出】Qt多线程机制解析:提升程序响应性与并发处理能力
在学习QT线程的时候我们首先要知道的是QT的主线程,也叫GUI线程,意如其名,也就是我们程序的最主要的一个线程,主要负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。但是当我们只限于在一个主线程上书写逻辑时碰到了需要一直等待的事件该怎么办?它的加载必定会带着主界面的卡顿,这时候我们就要去使用多线程。
157 6
|
5月前
|
XML 数据格式
程序技术好文:格式化xml
程序技术好文:格式化xml
94 0
|
5月前
Qt MainWindow 程序主窗口
Qt MainWindow 程序主窗口
|
6月前
|
人工智能 编译器 C++
新版Qt6快速打包程序脚本
不知道啥时候Qt更新了,目前是6.7.0,项目默认的生成路径改了, 从 项目目录的同级目录 改为了 项目目录中的build目录, 之前的脚本也用不了了,所以用AI更新了一下脚本, 希望能帮到大家,方便快速打包程序到桌面。
164 9

相关课程

更多

推荐镜像

更多
下一篇
无影云桌面