QT实践

news/2025/2/26 7:32:30

  这两天工作搞了下QT,主要是为了实现一个功能,跨平台用的。功能是这样的,根据一个页面表单进行选择元素最后生成一个xml文件发送到手机上,因为之前实现了xmpp发送文件的作用,所以现在只需要根据文件生成一个xml文件。中途还算顺利,两天搞定!

   最终创建xml的代码就是这一段:

void hellodialog::create_Xml()
{
 
    QString fileName = QFileDialog::getSaveFileName(this,"Save","",".xml");
    QFile file(fileName);
    if(!file.open(QIODevice::WriteOnly|QIODevice::Text))
    {
        return ;
    }
    QDomDocument document;
    QString strHeader( "version=\"1.0\" encoding=\"UTF-8\"" );
    document.appendChild( document.createProcessingInstruction("xml", strHeader) );
    QDomElement root_elem = document.createElement("node");
    document.appendChild(root_elem);
 
    QDomElement child1 = document.createElement("component");
    child1.setAttribute("type","Visualable");
    root_elem.appendChild(child1);
 
    QDomElement child2 = document.createElement("component");
    child2.setAttribute("type","ProxyDeform");
    root_elem.appendChild(child2);
 
    QString mesh ="Model:";
    mesh += fileNameMesh;
    mesh += ":clone";
 
    QDomElement item1 = document.createElement("attribute");
    item1.setAttribute("name","Model");
    item1.setAttribute("value",mesh);
 
    child1.appendChild(item1);
 
    QDomElement item2 = document.createElement("attribute");
    item2.setAttribute("name","Is build Tangent");
    item2.setAttribute("value",isBuildTangent);
    child1.appendChild(item2);
 
    QString material = "name=";
    material += comboBoxDiff;
    material += ",specular=";
    material += lineEditR;
    material += " ";
    material += lineEditG;
    material += " ";
    material += lineEditB;
    material += " ";
    material += lineEditE;
    material += ",bumpiness=";
    material += bumpiness;
    material += ",cull=";
    material += comboBoxCull;
    material += ",Texture=";
    material += diffPicture;
 
    QDomElement item3 = document.createElement("attribute");
    item3.setAttribute("name","MaterialName");
    item3.setAttribute("value",material);
    child1.appendChild(item3);
 
    QDomElement item4 = document.createElement("attribute");
    item4.setAttribute("name","Z Modify");
    item4.setAttribute("value",modifyZ);
    child1.appendChild(item4);
 
    QString vertex;
    vertex += "VertexProxyTable:";
    vertex += fileNameProxy;
 
    QDomElement item5 = document.createElement("attribute");
    item5.setAttribute("name","VertexProxyTable");
    item5.setAttribute("value",vertex);
    child2.appendChild(item5);
 
    QString object3D;
    object3D += "Object3D:";
    object3D += fileNameObj;
    object3D += ":clone";
 
    QDomElement item6 = document.createElement("attribute");
    item6.setAttribute("name","Object3D");
    item6.setAttribute("value",object3D);
    child2.appendChild(item6);
    QTextStream out( &file );
    document.save( out, 4 );
    file.close();
}
如果有报一些.dll的错误的话,则需要使项目重新qmake一下,中途卡在这边一点时间。COFF的错误的话需要下载一个SP1,一般是不会碰到这种错误的,自己是因为安装VS2012后面卸载有点兼容问题吧。生成的xml格式类似下面这种:


在此记录下,自己也是第一次用QT做点东西,多掌握点东西对自己总是好的,加油!


http://www.niftyadmin.cn/n/4820562.html

相关文章

[游戏]五子连珠

五子连珠是 一个同色相消类游戏。你可以移动小球, 使其从一个位置移动到另外一个位置,尽量使同一颜色的小球排成一横行、竖行或者斜行。只要在这些行上的小球达到5个或者多于5个,这些球就可以消去。直达 棋盘上没有空格放置小球时&#xff0c…

Python扩展方法及工具比较

http://zfqcn.blog.163.com/blog/static/2280681200711111311923/一、普通扩展方法 扩展Python包括三个步骤:1. 创建源程序(C, C, java, ...);2. 为源程序写wrap代码; 包括四个步骤:? include "Python.h";? 为每…

Activity的4种launchMode

launchMode介绍 launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有…

Java 7.0 New Features

转自http://www.javabeat.net/javabeat/java7/index.php。此篇文章提供了Java 7.0的新的重要特性介绍。 Java 7.0也是自Java 5.0做重大改变(泛型和并发包)后的又一次重大变化。语言规范将进一步演化(C#演化的太快了)。尤其是闭包(Closures)的引入,使Java语言也能象C…

gitignore自动生成

gitignore文件是Git版本控制中的忽略文件,可以自行设置不用Git进行控制的文件。例如.class等 https://www.gitignore.io/这个网址可以帮助开发者快速生成推荐的gitignore文件。 Git 的 .gitignore 配置规则 .gitignore 配置文件用于配置不需要加入版本管理的文件…

昨晚在我那台古老台式机上装Fedora 10

最近整理家里,终于搬出我那台7,8年前买的那台台式机,配置如下:1.CPU 赛扬1G2.显卡 i810 (?)3.内存512M4.光驱CD5.显示器 红色无法显示(或许显卡坏了)6. Windows XP反正此机闲着没用,遂想装个Linux玩玩。因为是CD光驱和Fedora 10 DVD安装光盘…

我还能走很远---lua和tolua++

我还能走很远与技术有关 登录注册 全站当前博客 空间博客好友相册留言 安仲明ID:foruok共3740次访问,排名2万外好友2人,关注者4人喜读小说,通俗、武侠、名著、网作。foruok的文章原创 26 篇翻译 0 篇转载 0 篇评论 9 篇最近评论he…

位操作(C和指针)

/***编写一个函数unsigned int reverse_bits(unsigned int value);这个函数的返回值是把value的二进制位模式从左到右变换一下后的值。**例如在32位机器上,25这个值包含下列各位00000000000000000000000000011001 函数的返回值应该是10011000 0000 0000 0000 0000…