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

VS使用QT设计师设计的UI

2014-08-25 21:46 405 查看
1. 新建UI,保存为ab.ui,把文件放在项目的UI路径中。







2. 在VS加入ab.ui文件,例如:





3. 编译一下,会生成一个ui_ab.h的文件。

运行的命令行为:"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"

右键*.ui文件,选属性可以看到:





4. 使用方法如下类图:





5. 原因,看下面代码的对应关系:

ab.ui文件

<?xmlversion="1.0"encoding="UTF-8"?>

<uiversion="4.0">

<class>Form</class>

<widgetclass="QWidget"name="Form">

<propertyname="geometry">

<rect>

<x>0</x>

<y>0</y>

<width>279</width>

<height>166</height>

</rect>

</property>

<propertyname="windowTitle">

<string>Form</string>

</property>

<widgetclass="QPushButton"name="But">

<propertyname="geometry">

<rect>

<x>70</x>

<y>40</y>

<width>75</width>

<height>23</height>

</rect>

</property>

<propertyname="text">

<string>点Ì?击¡Â</string>

</property>

</widget>

</widget>

<resources/>

<connections/>

</ui>





ui_ab.h文件

#ifndef UI_AB_H

#define UI_AB_H



#include <QtCore/QVariant>

#include <QtWidgets/QAction>

#include <QtWidgets/QApplication>

#include <QtWidgets/QButtonGroup>

#include <QtWidgets/QHeaderView>

#include <QtWidgets/QPushButton>

#include <QtWidgets/QWidget>



QT_BEGIN_NAMESPACE



class Ui_Form

{

public:

QPushButton *But;



void setupUi(QWidget *Form)

{

if (Form->objectName().isEmpty())

Form->setObjectName(QStringLiteral("Form"));

Form->resize(279, 166);

But = new QPushButton(Form);

But->setObjectName(QStringLiteral("But"));

But->setGeometry(QRect(70, 40, 75, 23));



retranslateUi(Form);



QMetaObject::connectSlotsByName(Form);

} // setupUi



void retranslateUi(QWidget *Form)

{

Form->setWindowTitle(QApplication::translate("Form", "Form", 0));

But->setText(QApplication::translate("Form", "\347\202\271\345\207\273", 0));

} // retranslateUi



};



namespace Ui {

class Form: public Ui_Form {};

} // namespace Ui



QT_END_NAMESPACE



#endif // UI_AB_H



6. 下面是自己写的AB.h类进行使用

//AB.h文件

#pragma once

#include <QtWidgets/QMainWindow>

#include "ui_ab.h"



class AB : public QWidget

{

Q_OBJECT



public:

AB(QWidget *parent = 0);

~AB();



private:

Ui::Form ui;

};



//AB.cpp文?件t

#include "AB.h"



AB::AB(QWidget *parent)

: QWidget(parent)

{

ui.setupUi(this);

}



AB::~AB()

{



}



7. 把这个UI写一个测试,运行结果为





好的,nice!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: