1. Qt如何實現靜態編譯與動態編譯共存
通常不需要在系統變數中加入Qt庫的位置的。Qt Creator可以自動掃描到系統中存在的Qt庫版本,如果掃描不到,可以通過Creator的 Tool->Options->Qt4中添加靜態庫的路徑。而QDevelop雖然沒有那麼智能,但是可以手動指定INCLUDE和LIB的位置。或許,這根本就不是一個問題。如果懷念動態庫,或者在產品發布之前並不想體驗靜態編譯那種蝸牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要記得在Project中選擇相應的版本。
2. Qt嵌入式多語言的同時問題,怎麼解決
引言:目前,Qt作為圖形開發軟體使用的人群越來越多,很多公司的產品有多國語言支持的需求,筆者就教學與項目開發中的經歷,小結了Qt多國語言(國際化)問題,僅供參考。
假設我們已經建好一個工程,且可以運行出基本的界面。
1、打開項目工程文件QTDemo.pro,添加如下語句:
TRANSLATIONS += en.ts zh_CN.ts zh_TW.ts
2、然後在命令行窗口中輸入以下命令:
lupdate QTDemo.pro
這樣就生成了3個語言文件:en.ts,zh_CN.ts,zh_TW.ts
3、用linguist(在QT安裝目錄下的bin目錄中)打開zh_CN.ts(簡體中文),選擇「編輯」->「翻譯文件設置…」,選擇Chinese/China:選中某一個字元串,在譯文文本框
中輸入對應於中文的字元串:
同理,進行zh_TW.ts(繁體中文)文件的翻譯,en.ts(英文)文件不用翻譯。
4、用 lrelease QTDemo.pro 將對應的.ts文件生成.qm文件,.qm文件比較緊湊、體積小。
5、在程序中添加對國際化的支持,將main.cpp修改為如下內容:
#include <QApplication>
#include <QTranslator>
#include "QtDemo.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
//以下3句話是裝載的程序
QTranslator translator;
translator.load(QString(argv[1]));
app.installTranslator(&translator);
QtDemo *dlg = new QtDemo;
dlg->show();
return app.exec();
}
重新執行make命令,生成可執行程序。
在運行程序時通過傳遞命令行參數指定所使用的語言,注意不需要指定擴展名.qm,例如:
./QTDemo zh_CN 就出現中文的界面了,其他的依次類推。
3. qt多個工程之間調用
把公用的部分做成庫。然後都添加那個庫,就可以共享代碼了。
4. qt creator 多項目編譯
要設置環境變數的
我的電腦-屬性-高級-環境變數-PATH里添加新的環境變數。
D:\Qt\2009.04\mingw\bin;D:\Qt\2009.04\qt\bin;
我的是這2個,你該成你相應的目錄。
那我就不知道了,我只在WINDOW下用過。
5. qt如何設置宏區分同一個平台多套件編譯
在pro裡面定義一個宏,然後在代碼中根據這個宏進行條件編譯。
下面是一個示例:
網頁鏈接
6. 嵌入式平台 同時運行多個qt程序,如何做到只有一個程序佔用屏幕,使點擊屏幕只有一個程序響應
可以把其他放到後台運行嘛,前台放一個就行了。如果是qt界面的話,可以用hide把其他窗口隱藏起來,只顯示一個不就行了
7. QT如何靜態編譯和動態編譯共存
本身就是共存的,至於用不用得到動態那要看你的代碼是怎樣寫的,有虛函數就可以了
8. 如何同時打開兩個QT工程我需要分別編譯兩個工程~
在項目列表中,右擊項目名稱,在彈出的菜單里選擇構建、運行即可。
9. qt如何實現多窗口編譯
qt我不是很了解,但是用BCB的話呢,設置多個FORM(窗口) 比如frm1(原窗口),frm2(登錄窗口);
點登錄的時候設置FORM的屬性使frm1隱藏(hide),frm2出現(show);
點返回的時候設置FORM的屬性使frm1出現,frm2隱藏。
我想語言之間有相似之處吧,提供參考。