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文件作为资源文件,改变它的编译方式,如下图:

QT+VS2008 项目引入Qt专有UI文件_第1张图片

    以后直接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

你可能感兴趣的:(QT+VS2008 项目引入Qt专有UI文件)