将Qt 4.7转换为4.2

时间:2011-01-26 03:48:58

标签: c++ qt

嘿,我在学校的一个compsci项目小组。我们需要在Qt中编写一个接口。我的小组成员在Qt 4.7中编写了GUI,它需要用Qt 4.2编译。当我尝试对项目进行测试时,它会说“uic:使用过于陈旧版本的Qt设计器生成的文件”。

我是Qt的新手,所以我真的不知道版本之间有多大的变化。我的小组成员没有多大帮助。我是否有一种无痛的方式将文件转换为正确版本的Qt?

3 个答案:

答案 0 :(得分:4)

我要尝试的第一件事是在旧的Qt Designer中打开* .ui文件并尝试保存它们。如果它不想保存新打开的文件,我会做一些无关紧要的更改,比如将某个组件的某些属性更改为不同的值然后再返回。

但是,Qt Designer可能会抱怨它对于那个特定文件太旧了,就像UIC那样。在这种情况下,您必须手动编辑* .ui文件。它们是纯XML文件,因此可以相对容易地完成。首先打开它们并将版本属性更改为“4.2”或Qt 4.2使用的任何内容,以防它与Qt版本不同。尝试编译。 UIC可能会抱怨4.2不支持或以不同方式指定的某些属性。如果不需要,您必须删除该属性,或者以4.2兼容的方式指定它们。为了弄清楚如何操作,使用该特定属性从头开始创建一个简单的UI,并将其保存到新文件中。打开它,看看它是如何在4.2中完成的。然后编辑您的文件以符合该格式。

我过去做过这个(虽然不是4.7到4.2),它比听起来容易。我只需要改变指定一些属性的方式。边缘或类似的东西,我不记得确切。我甚至能够用正则表达式代替我认为。

答案 1 :(得分:1)

我今天做了这个,看起来新的设计师.ui文件在顶部有这一行:

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

如果删除此行,则下一行应为:

<ui version="4.0">

然后qmake和uic应该正常工作。

答案 2 :(得分:0)

问题是.ui文件。尝试在Qt设计器中打开它们并让它转换它们。