qt界面创建的控件怎么存

qt界面创建的控件怎么存,第1张

1、在Qt的设计师工具中创建一个新的UI文件,并添加所需的控件

2、将UI文件保存为.ui文件,以便之后可以使用Qt提供的UI文件编译器工具进行编译。

3、在项目中包含UI文件对应的头文件。

4、在代码中使用该头文件中的类来实例化UI控件。

首先,我们要编写一个主动态库,来实现我们自己的控件。

其次,还要写一个接口动态库,用来实现designer中调用我们自己的控件。这一步很关键。这个动态库中程序结构都是qt固定的。具体参见附录。

最后,编译写好的上面两个插件,要拷贝一些文件到相应目录下:

分别将主动态库和库文件拷贝到qt安装的bin和lib目录下;

将接口动态库和库文件拷贝到qt安装目录的plugins\designer目录下;

将主动态库的接口头文件拷贝到qt安装目录的include目录下;

这样,我们的写的控件就添加完成了。这时打开desinger就可以在工具条中看到我们写的控件了。我们就可以像其它控件一样使用这个控件了。

如果是QtCreator生成会有Ui::MainWindow *ui定义。

直接使用ui指针 *** 作控件就好。

一般UI会生成ui_*.h 文件如下:

可以 看到控件都是public的,可以直接使用

/********************************************************************************

** Form generated from reading UI file 'mainwindow.ui'

**

** Created by: Qt User Interface Compiler version 5.9.7

**

** WARNING! All changes made in this file will be lost when recompiling UI file!

********************************************************************************/

#ifndef UI_MAINWINDOW_H

#define UI_MAINWINDOW_H

#include <QtCore/QVariant>

#include <QtWidgets/QAction>

#include <QtWidgets/QApplication>

#include <QtWidgets/QButtonGroup>

#include <QtWidgets/QHeaderView>

#include <QtWidgets/QMainWindow>

#include <QtWidgets/QMenuBar>

#include <QtWidgets/QStatusBar>

#include <QtWidgets/QToolBar>

#include <QtWidgets/QWidget>

QT_BEGIN_NAMESPACE

class Ui_MainWindow

{

public:

QMenuBar *menuBar

QToolBar *mainToolBar

QWidget *centralWidget

QStatusBar *statusBar

void setupUi(QMainWindow *MainWindow)

{

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

MainWindow->setObjectName(QStringLiteral("MainWindow"))

MainWindow->resize(400, 300)

menuBar = new QMenuBar(MainWindow)

menuBar->setObjectName(QStringLiteral("menuBar"))

MainWindow->setMenuBar(menuBar)

mainToolBar = new QToolBar(MainWindow)

mainToolBar->setObjectName(QStringLiteral("mainToolBar"))

MainWindow->addToolBar(mainToolBar)

centralWidget = new QWidget(MainWindow)

centralWidget->setObjectName(QStringLiteral("centralWidget"))

MainWindow->setCentralWidget(centralWidget)

statusBar = new QStatusBar(MainWindow)

statusBar->setObjectName(QStringLiteral("statusBar"))

MainWindow->setStatusBar(statusBar)

retranslateUi(MainWindow)

QMetaObject::connectSlotsByName(MainWindow)

} // setupUi

void retranslateUi(QMainWindow *MainWindow)

{

MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR))

} // retranslateUi

}

namespace Ui {

class MainWindow: public Ui_MainWindow {}

} // namespace Ui

QT_END_NAMESPACE

#endif // UI_MAINWINDOW_H


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11595561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存