码迷,mamicode.com
首页 > 其他好文 > 详细

QT实践

时间:2014-08-27 09:24:53      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:style   color   os   io   for   文件   ar   问题   cti   

  这两天工作搞了下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格式类似下面这种:

bubuko.com,布布扣

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

QT实践

标签:style   color   os   io   for   文件   ar   问题   cti   

原文地址:http://blog.csdn.net/fuyuehua22/article/details/38852423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!