2011-01-26 61 views
1

嗨,我在一個小組裏爲一個compsci項目在學校。我們需要在Qt中編寫一個接口。我的小組成員在Qt 4.7中編寫了GUI,並且需要使用Qt 4.2進行編譯。當我嘗試qmake這個項目時,它說「uic:使用過時的Qt設計器版本生成的文件」。將Qt 4.7轉換爲4.2

我是Qt新手,所以我不知道版本之間有多大的變化。我的小組成員沒有太多幫助。有沒有一種無痛的方式來將文件轉換爲正確的Qt版本?

+1

Qt 4.2是* OLD *。解決阻止你使用更新版本的工具包的任何事情都應該符合你的興趣。您可能會遇到4.2中不存在的功能問題,或者您嘗試安裝它的系統包含其他過時的軟件,這些軟件可能包含安全漏洞。 – Juliano 2011-01-26 04:50:42

+3

它是一個學校項目,所以我只是使用他們提供的軟件。相信我,如果這取決於我,我會使用4.7 – 2011-01-26 04:53:15

回答

0

問題是.ui文件。嘗試在Qt設計器中打開它們並將其轉換。

4

我想嘗試的第一件事是在舊的Qt Designer中打開* .ui文件並嘗試保存它們。如果它不想保存一個新打開的文件,我會做出一些微不足道的改變,例如將某個組件的某些屬性更改爲不同的值,然後返回。

然而,Qt Designer可能會抱怨它對於特定文件來說太舊了,比如UIC。在這種情況下,您必須手動編輯* .ui文件。它們是純XML文件,因此可以相對容易地完成。首先打開它們,並將版本屬性更改爲「4.2」或Qt 4.2所使用的任何內容,以防與Qt版本不同。嘗試編譯。 UIC可能會抱怨某些不受4.2支持的屬性或以不同方式指定的屬性。如果不需要,您必須移除這些屬性,或者以4.2兼容的方式指定它們。爲了弄清楚如何做到這一點,從頭創建一個簡單的用戶界面,使用該特定的屬性,並將其保存到一個新的文件。打開它,看看它是如何在4.2中完成的。然後編輯您的文件以符合該格式。

我在過去做過這個(雖然不完全是4.7到4.2),但它比聽起來容易。我只需要改變一些屬性的指定方式。邊距或類似的東西,我不記得確切。我甚至能夠用正則表達式代替我的想法。

1

我這今天的表現,它看起來像新設計的.ui文件有這條線在頂部:

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

如果您刪除此行的下一行應該是這樣的:

<ui version="4.0"> 

然後qmake和uic應該可以正常工作。