Qt绑定UI界面和Qt类的四种方法

文章详细介绍了在Qt开发中将UI界面与类进行绑定的四种方法,包括通过UI指针对象、直接声明UI对象、继承自UI类以及在VS中使用Qt的方式,并提到了在不同方法中如何初始化和访问UI控件。在遇到UI未绑定的问题时,可能需要检查UI文件的命名和类名的一致性。

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 有两个方法:

  1. 添加Qt 设计师界面类,包含:类的.cpp、.h 和一个 ui 界面

  1. 当已经实现类逻辑时,可以通过 Qt Designer Form 为已有类添加一个 ui

最近使用 Qt 时有以上第二点的需求,但创建好 ui 之后,发现 ui 与类一直没有绑定,ui 上的控件通过 类中的 ui 指针一直获取不到,参考以下解决方案:

  1. 添加UI文件及在相应文件中加入实现.

  1. 参考第3/4步解决没有绑定的坑.

总结:

  1. 添加 ui 文件,并在待绑定的类的 cpp/h 文件中加入新的 ui 依赖

  1. 在新加 ui 文件时的命名需要与待绑定的类名一致,否则后续就需要修改 xxx.ui 文件中的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值