您的位置:首页 > 产品设计 > UI/UE

QT+VS2008 项目引入Qt专有UI文件

2013-07-22 18:29 253 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: