QT代码在不使用自带设计者ui界面时,如何添加自定义控件

这里是一个简单的教程,主要描述如何在不勾选设计者ui时,如何通过代码手动约束控件,以及定义控件的形状大小等。

源码:https://download.csdn.net/download/m0_46566693/89394433

1,首先创建工程,我这里将工程命名为demo,创建目录根据自己的喜好自己选择就好。

2,在这里build system选项选择qmake,(当然也可以选择其他的编译器,但是不在本教程讨论范围之内)。

3,选择创建的基准类,这里笔者选择的是QWidget(为什么选择这个,是因为创建小型项目窗口基本合适),注意:(这里不想创建编辑者界面ui就不要选择Generate form选项)

4,好了,界面创建好了好我们就进入到了工程里面来了,因缺少编辑者ui这里是这样子的:

5,这里要实现的功能是,完全通过代码创建两个控件,点击首个按钮加一,点击次按钮减一的简单功能:头文件包含

#include <QPushButton>
#include <QLabel>

6,创建按钮的对象,按钮一以方式一创建:

QPushButton *one_demo_button = new QPushButton(this);
one_demo_button->setText("one_demo_button");
one_demo_button->setGeometry(100,100,150,40);

7,按钮二以方式二创建:(这里这么做是为了更改好的应对知识的变化)

QPushButton *two_demo_button = new QPushButton("two_demo_button",this);
two_demo_button->setGeometry(100,200,150,40);

8,创建label文本显示标志:

QLabel *demo_label = new QLabel("0",this);
demo_label->setGeometry(300,150,150,40);

9,通过信号好槽的形式来传递变量:

connect(one_demo_button,&QPushButton::clicked,[=](){
        num++;
        demo_label->setNum(num);
});
connect(two_demo_button,&QPushButton::clicked,[=](){
        num--;
        demo_label->setNum(num);
});

10,编写完成后,运行测试如下,点击按钮数字就会变化:

总结:通过一个简单的项目,属性纯代码创建控件,并实现相应的功能,通过信号和槽实现信号的传递!

源码地址:https://download.csdn.net/download/m0_46566693/89394433

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt Designer是一个强大的图形用户界面设计工具,它作为Qt框架的一部分,允许开发者创建和定制自己的UI控件而无需编写底层的Qt代码自定义控件的过程通常包含以下几个步骤: 1. **创建UI文件**:在Qt Designer中,首先打开一个新的或现有的UI项目。你可以从“文件”菜单开始,选择“新建文件或打开文件”。 2. **添加基础控件**:使用工具箱(工具栏左侧)添加所需的基类控件,如按钮、线性布局或自定义小部件(QWidgets)。 3. **绘制自定义形状**:如果你想要创建一个自定义形状的控件,可以在设计视图中右键点击并选择“添加新部件”。这会打开“创建新部件”对话框,选择“QCustomWidget”模板,然后为控件提供一个类名。 4. **编辑源码**:在右侧的“属性编辑器”中,你可以设置控件的外观和行为。但是,大部分设计的改动不会直接写入代码,而是作为XML描述保存在`.ui`文件中。 5. **编写C++代码**:为了使自定义控件真正生效,你需要在对应的C++类中实现这些控件的功能。这包括重写可能的槽函数(slot),信号发射者,以及处理事件的方法。 6. **将UI编译为头文件**:在`designer.py`脚本中运行UI文件,生成相应的`.h`和`.cpp`文件,这是QtUI描述转换为可编译代码的方式。 7. **连接信号和槽**:确保在C++代码中正确地连接了自定义控件的信号(如按钮点击)到槽函数(处理动作的方法)。 8. **测试和集成**:最后,将自定义控件添加到你的项目中,并在实际应用中测试其功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会倒的鸡蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值