• Qt.Visual.Studio.Integration.1.4.3 与 QT 4.5.0 Commercial for VS2008搭档的一个小问题


    Qt.Visual.Studio.Integration 是一套很棒的的VS插件工具,个人感觉比QT的 qt-vs-addin-1.x.x 好用。

    尤其是与QT 4.5.x Commercial for VS2008配合的时候,可以直接在Visual Studio 2008里就直接创建QT工程,直接使用内嵌的QT设计器,直接使用Visual Studio进行项目的编译和调试,完全的与Visual Studio无缝集成。

    问题的最初发生是因为又一次偶然的使用QT 4.5.0 的desinger 打开了项目里的ui文件,并且做了编辑和保存。然后回到Visual Studio里再试图打开内嵌的设计器进行编辑时,遇到了打开失败的错误:“The file ******* cannot be opened with the Qt 4 form editor.Try converting the file using uic.ex  ”。

    image

    难道是自己的什么操作破坏了ui文件了?带着这样的疑问,用文本编辑器打开ui文件,可以看到依然是一个合法的XML内容的ui文件,并未发现什么异常的不合法的内容。用QT 4.5.0的designer打开ui文件,的确可以正常打开ui文件进行编辑。这也证明了ui文件并未被破坏。

    会不会是偶然情况呢?为了验证这种情况,重新在visual studio里创建一个ui文件,并且打开编辑,一切正常。然后再次用QT 4.5.0的desinger对其进行编辑保存。回到visual studio里,再打开这个ui文件,同样的错误窗口再次弹出。。。。

    到底问题出在哪里呢?重新用Visual Studio创建一个ui文件。然后使用文本编辑器打开后,与Visual Studio不能打开的ui文件进行比较,发现了一个最大的不同,在不能打开的ui文件头部,多了这么一行:

    <?xml version="1.0" encoding="UTF-8"?>

    将这行删除后,再尝试使用Visual Studio打开,果然,这次终于可以在Visual Studio里正常打开ui文件了。

    自此之后,我就记住了,如果想在Visual Studio直接打开ui文件却遇到同样问题的时候,就直接删除ui的文件头即可!

    但是,问题并没有就此结束。

    很快,随着编码的持续进行,需要对项目添加翻译文件,以实现应用程序的国际化切换界面语言的需求。

    当试图在Visual Studio里的QT插件菜单里选择Create New Translation File… 时,意外再次发生了。弹出的错误窗口如下:

    image

    郁闷,打开命令提示符窗口,使用lupdate来手动生成ts文件,发现了这样一个错误:

    Unknown feature http://qtsoftware.com/xml/features/report-whitespace-only-CharData

    打开浏览器,访问提示的页面,无效链接~~~~,无语。

    看URL,又提到了xml,于是想到了是不是还是ui的问题,使用lupdate单独对ui文件进行处理:  lupdate ***.ui –ts test.ts

    果然,问题再现了(但是ts文件成功产生)。。。。回想到之前的问题。。。于是尝试把去除掉的UI文件头重新添加回去。。。居然又可以从VisualStudio生成了。。。

    其实我本该就此定论,已经得出解决方案了。。。。可是,可是。再一次在另外一个测试工程里验证此过程的时候,经过上面的步骤后,依然不能从Visual Studio创建翻译文件了。。。。。哎,哪位高手给解释解释,这到底是咋回事嗫?从QT的文档里看,之前发现的report-whitespace-only-CharData似乎是跟遇到的问题没有关系。。。。

    不过幸好这个问题其实已经不是什么大问题了,因为在上面的验证过程中,可以注意到从命令提示符使用 lupdate 时可以产生出ts文件。这个ts文件是可以再Visual Studio里使用linguist编辑,也可以使用右键菜单里的命令进行更新和发布生成qm文件了的。(注,如果使用lupdate命令之前已经存在ts文件,并且是0字节,会报错“ Parse error at D:/***/***/testts_zh.ts:1:0: Premature end of document ”的,此时只要删除原来的ts文件即可)

    恩,that's all。。。。。

    希望可以给遇到同样问题的童鞋一点点帮助。:)

    http://code.google.com/p/klsudoku
    Email: ttylikl@qq.com
    QQ群:106249 ( Sudoku 群) QQ群:94388010( C++ 群)
  • 相关阅读:
    【华为云技术分享】昇腾AI处理器软件栈--总览
    【云速建站】SSL证书自助部署
    【华为云技术分享】如何做一个优秀软件-可扩展的架构,良好的编码,可信的过程
    C# Async和Await的异步编程例子
    委托的简单例子
    批量修改图片的尺寸(c#)
    使用TinyPNG提供的API,对图片进行压缩(C#)
    21. 合并两个排序单链表 Merge Two Sorted Lists
    263. 丑陋数 Ugly Number
    413. 数组切片 Arithmetic Slices
  • 原文地址:https://www.cnblogs.com/ttylikl/p/1525952.html
Copyright © 2020-2023  润新知