QT+VS2008 项目引入Qt专有UI文件
Qt自带的Designer非常好用,可以设计整个面板的布局,而且很容易对齐。
在非QT4工程里如何使用UI文件呢?下面给大家一一道来。
UI文件是Qt独有的记录软件UI的文件,可以用记事本打开,可以看到语法近似于xml。再使用Qt自带的uic(User Interface Compiler)命令编译后,可以产生一个C++的界面类。
uic命令格式如下:uic My.ui -o My.h
生成的.h文件可以直接使用在C++工程里,例如下面的代码:
// MyQt.h #pragma once #include <QtGui/QWidget> #include "MyQtUI.h" class MyQt : public QWidget,Ui_Form { Q_OBJECT public: MyQt(void); };
// MyQt.cpp
#include "MyQt.h" MyQt::MyQt(void) { setupUi(this); }
MyQt类继承了QWidget类和Ui_Form类,在构造函数中调用UiForm类中的setupUi(this)。而MyQtUI.h就是MyQtUI.ui编译出来的文件。MyQtUI.h源代码:
/******************************************************************************** ** Form generated from reading UI file 'MyQtUI.ui' ** ** Created: Sun Mar 24 16:36:02 2013 ** by: Qt User Interface Compiler version 4.8.2 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/ #ifndef MYQTUI_H #define MYQTUI_H #include <QtCore/QVariant> #include <QtGui/QAction> #include <QtGui/QApplication> #include <QtGui/QButtonGroup> #include <QtGui/QHeaderView> #include <QtGui/QWidget> QT_BEGIN_NAMESPACE class Ui_Form { public: void setupUi(QWidget *Form) { if (Form->objectName().isEmpty()) Form->setObjectName(QString::fromUtf8("Form")); Form->resize(400, 300); retranslateUi(Form); QMetaObject::connectSlotsByName(Form); } // setupUi void retranslateUi(QWidget *Form) { Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8)); } // retranslateUi }; namespace Ui { class Form: public Ui_Form {}; } // namespace Ui QT_END_NAMESPACE #endif // MYQTUI_H
如何让整个工程可以方便的更改界面呢?我们可以吧ui文件作为资源文件,改变它的编译方式,如下图:
以后直接Ctrl+F5编译就好了。如果要修改ui的话,双击调用Designer修改,Ctrl+s保存后编译即可。
范例代码下载地址:http://pan.baidu.com/share/link?shareid=363445&uk=2804348991
转载的话留个地址吧:http://www.cnblogs.com/IT-BOY/archive/2013/03/24/2979888.html