如何在清晰的步驟中使用uic3將qt3格式轉換爲qt4格式?將qt3轉換爲qt4的步驟
回答
Qt 4附帶了用於處理舊的.ui文件的工具uic3。它可以以兩種方式使用:
- 要生成頭文件和源代碼的插件來實現任何自定義信號和槽使用Qt設計3.
- 生成可與使用了全新的UI文件添加Qt設計4.
您可以使用這兩種方法的組合,以獲得可以移植你的用戶界面,Qt的4
uic3 myform.ui > myform.h
uic3 -impl myform.h myform.ui > myform.cpp
時爲起點使用的用戶界面,頭文件和源文件10
生成的文件myform.h和myform.cpp使用QWidget實現Qt 4中的表單,該QWidget將包含在UI文件中指定的自定義信號,插槽和連接。但是,請參閱下面瞭解此方法的侷限性。
第二種方法是使用uic3到Qt設計3的.ui文件轉換爲Qt設計4格式:
uic3 -convert myform3.ui > myform4.ui
產生的文件myform4.ui可以在Qt設計4.報頭進行編輯表單文件由Qt 4的uic生成。請參閱使用設計UI文件中有關首選方式使用與Qt Designer創建4.
注意形式的信息的Qt設計手冊您的應用程序章:有uic3的侷限性:
轉換Qt 3 UI文件到Qt 4有一些限制。最明顯的限制是由於uic不再生成QObject,因此無法爲表單定義自定義信號或插槽。相反,程序員必須在主容器中定義這些信號和插槽,並在調用setupUi()後將它們連接到窗體中的小部件。例如:
class HelloWorldWidget : public QWidget, public Ui::HelloWorld
{
Q_OBJECT
public:
HelloWorldWidget(QWidget *parent = 0);
public slots:
void mySlot();
};
HelloWorldWidget::HelloWorldWidget(QWidget *parent)
: QWidget(parent)
{
setupUi(this);
QObject::connect(pushButton, SIGNAL(clicked()),
this, SLOT(mySlot()));
}
void HelloWorldWidget::mySlot()
{
...
}
一個快速和骯髒的方式來包含自定義信號和槽口形式是使用uic3,而不是UIC來生成代碼。由於uic3確實生成了一個QWidget,它將使用UI文件中指定的自定義信號,插槽和連接來填充它。但是,uic3只能從Qt 3 UI文件生成代碼,這意味着UI文件永遠不會被翻譯,需要使用Qt Designer 3進行編輯。
還要注意,可以在小部件之間創建隱式連接一個表格和主要容器。在setupUi()用子窗口小部件填充主容器後,它使用形式爲on_objectName_signalName()的名稱掃描主容器的插槽列表。
如果表單包含一個窗口小部件,其對象名稱爲objectName,並且該窗口小部件有一個名爲signalName的信號,則該信號將連接到主容器的插槽。例如:
class HelloWorldWidget : public QWidget, public Ui::HelloWorld
{
Q_OBJECT
public:
HelloWorldWidget(QWidget *parent = 0);
public slots:
void on_pushButton_clicked();
};
HelloWorldWidget::HelloWorldWidget(QWidget *parent)
: QWidget(parent)
{
setupUi(this);
}
void HelloWorldWidget::on_pushButton_clicked()
{
...
}
因爲命名約定,setupUi()自動連接按鈕的點擊()信號HelloWorldWidget的on_pushButton_clicked()槽。
- 1. 將線程從QT3移植到QT4
- 2. Qt3到Qt4類更改
- 3. 步驟在將Web應用程序轉換爲iPad時需要的步驟
- 4. 跳過轉換步驟
- 5. qt3到qt4包含文件更改
- 6. Sitecore 8.1:將Lucene搜索轉換爲Solr的步驟
- 7. SAS將字符轉換爲數字的步驟
- 8. 我需要採取什麼步驟將類庫轉換爲WCF?
- 9. 基本步驟將xml文件轉換爲html文件
- 10. 如何將qt3庫完全移植到qt4?
- 11. 步驟/ iges轉換的最佳工具?
- 12. 將兩個步驟總結爲一步
- 13. Gradle:Maven轉換爲Gradle之後,接下來的步驟是什麼?
- 14. 什麼是從使用libglade轉換爲GtkBuilder的步驟? (蟒蛇)
- 15. 可能:執行Qt3和Qt4代碼的程序?
- 16. 將大類從靜態轉換爲非靜態的步驟是什麼?
- 17. 在Python中將視頻轉換爲Gif所需的步驟是什麼?
- 18. 將TCL TK轉換爲獨立應用程序的最簡單步驟
- 19. AWS CodeBuild將FOREVER轉移到S3步驟
- 20. 如何在jquery步驟之間添加延遲轉換(jQuery步驟插件)
- 21. 手動配置轉換爲TFS構建步驟
- 22. 將事件轉換爲異步調用
- 23. 將Alamofire請求轉換爲同步?
- 24. 黃瓜步驟上錯誤的步驟
- 25. ISampleGrabberFilter一次一個步驟的步驟
- 26. DTS將SQL語句設置爲另一步中的步驟
- 27. 在動畫使用步驟函數變換旋轉的元素
- 28. JIRA - 轉換屏幕中的步驟描述
- 29. 轉換HTML(WSDL/XSD DOC)以MHT在MSBuild的步驟
- 30. Qt4 Model/View - 在View中轉換數據?
http://doc.qt.nokia.com/latest/porting4-overview.html該解決方案的Qt文檔應該有東西給你?你有沒有檢查過? – 2011-04-12 14:33:06