Qt绑定UI界面和Qt类的四种方法
1、
Qt类头文件中
声明命名空间
namespace Ui {
class Widget;
}
声明UI指针对象
public:
explicit Widget(QWidget *parent = 0);
private:
Ui::Widget *ui;
源文件的构造函数初始化列表中初始化指针:
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{...}
设置UI之后就可以用ui指针调用UI控件了:
ui->setupUi(this);
//一定要在setupUi之后
ui->pushButton->setToolTip("666");
2、
Qt类头文件中直接声明UI对象
private:
Ui::MyForm form;
Qt类源文件构造函数中设置UI后,可通过此对象调用UI控件
form.setupUi(this);
form.btnDel->setEnabled(false);
3、
Qt类头文件中
class Form : public QWidget, private Ui::Form
{public:
explicit Form(QWidget *parent = 0);
...
}
源文件可直接调用UI控件:
setupUi(this);
pushButton->setToolTip("666");
Qt Creater系统默认为第一种方法,但其他两种方法也可行。
4、VS&Qt使用的方法:
头文件中:
#include "ui_sokit.h"
...
class Sokit :public QWidget
{
Q_OBJECT
public:
explicit Sokit(QWidget *parent = 0);
private:
Ui::sokit ui;//这里的sokit对应设计师界面的objectname值
......
}
源文件中:
#include "sokit.h"
Sokit::Sokit(QWidget *parent) :QWidget(NULL)
{
ui.setupUi(this);
ui.label->setText("666");//注意这里和QtCreater的区别
......
}
————————————————
版权声明:本文为CSDN博主「52_赫兹的鲸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40194498/article/details/80820467
=======================
Qt问题:将类与ui界面关联
Qt 项目创建后添加 ui 有两个方法:
添加Qt 设计师界面类,包含:类的.cpp、.h 和一个 ui 界面
当已经实现类逻辑时,可以通过 Qt Designer Form 为已有类添加一个 ui
最近使用 Qt 时有以上第二点的需求,但创建好 ui 之后,发现 ui 与类一直没有绑定,ui 上的控件通过 类中的 ui 指针一直获取不到,参考以下解决方案:
总结:
添加 ui 文件,并在待绑定的类的 cpp/h 文件中加入新的 ui 依赖
在新加 ui 文件时的命名需要与待绑定的类名一致,否则后续就需要修改 xxx.ui 文件中的内容