如何在清晰的步骤中使用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. qt3到qt4包含文件更改
- 5. Postgres 9.4:转换步骤COPY?
- 6. 跳过转换步骤
- 7. SAS将字符转换为数字的步骤
- 8. 将进度条步骤转换为Javascript中的像素
- 9. 将LightSwitch应用程序转换为MVC的步骤
- 10. Sitecore 8.1:将Lucene搜索转换为Solr的步骤
- 11. 如何将qt3库完全移植到qt4?
- 12. 如何将步骤代码转换为Async.JS(Step => waterfall,this.parallel)?
- 13. 我需要采取什么步骤将类库转换为WCF?
- 14. 将伪代码转换为逻辑步骤?
- 15. 基本步骤将xml文件转换为html文件
- 16. 如何在trasmogrifier步骤中将字符串转换为DateTime?
- 17. 步骤/ iges转换的最佳工具?
- 18. ICU需要中间UTF16转换步骤
- 19. 将异步调用转换为同步?
- 20. 将两个步骤总结为一步
- 21. 可能:执行Qt3和Qt4代码的程序?
- 22. 从QT3到的Qt4:用内部类(Q3GList&Q3PtrCollection)
- 23. 什么是从使用libglade转换为GtkBuilder的步骤? (蟒蛇)
- 24. Gradle:Maven转换为Gradle之后,接下来的步骤是什么?
- 25. 将计算机上的C++ opencv项目转换为opencv的步骤android
- 26. 在Python中将视频转换为Gif所需的步骤是什么?
- 27. 将TCL TK转换为独立应用程序的最简单步骤
- 28. 将大类从静态转换为非静态的步骤是什么?
- 29. AWS CodeBuild将FOREVER转移到S3步骤
- 30. 如何在jquery步骤之间添加延迟转换(jQuery步骤插件)
http://doc.qt.nokia.com/latest/porting4-overview.html该解决方案的Qt文档应该有东西给你?你有没有检查过? – 2011-04-12 14:33:06