当前位置: 首页 > article >正文

QT自定义控件封装

QT自定义控件封装

1.概述

这篇文章介绍如何创建UI文件,通过自定义方式将两个控件联动起来,实现自定义功能。

2.创建UI文件

新建一个widget的普通项目,然后在项目名称上右键选择And New... 新建文件,然后选择QT 再选择Qt Designer Form Class
在这里插入图片描述
选择Widget 界面,点击下一步
在这里插入图片描述
给类起一个名字
在这里插入图片描述
点击下一步,点击完成。smallwidget.ui页面创建完成。
在这里插入图片描述

3.封装控件

1.添加控件

在smallwidget.ui页面添加 Spin boxhorizontalSlider 两个控件。
在这里插入图片描述

2.提升为控件

将我们自定义的smallwidget.ui控件提升为widget.ui的部件,也就是将我们自己创建的文件作为子文件添加到父文件中。

在这里插入图片描述
操作步骤如下
首先查看smallWidget的类型是什么,这里显示是QWidget
在这里插入图片描述

打开widget.ui文件,然后添加一个和smallWidget一样的类型的控件,也就是widget
在这里插入图片描述
widget控件上右键,选择Promote to 也就是提升为部件。
在这里插入图片描述
输入SmallWidget 类名称,点击 Global include ,点击Add,如下图将它提升为部件。
在这里插入图片描述

点击Promote,如下图
在这里插入图片描述
窗口右侧对象中变成了SmallWidget
在这里插入图片描述

2.自定义控件功能

smallWidget.cpp 文件中将两个控件进行关联,实现一个控件改变数值,另一个控件跟随改变数值。

#include "smallwidget.h"
#include "ui_smallwidget.h"

SmallWidget::SmallWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SmallWidget)
{
    ui->setupUi(this);

//    QSpinbox移动,Qslider跟着移动
    void(QSpinBox:: *spSignal)(int) = &QSpinBox::valueChanged;
    connect(ui->spinBox, spSignal, ui->horizontalSlider, &QSlider::setValue);

//    Qslider移动,QSpinbox跟着移动
    connect(ui->horizontalSlider, &QSlider::valueChanged, ui->spinBox, &QSpinBox::setValue);


}

SmallWidget::~SmallWidget()
{
    delete ui;
}

在这里插入图片描述


http://www.kler.cn/a/393582.html

相关文章:

  • 大模型时代,呼叫中心部门如何自建一套大模型在线客服?
  • Nuxt 版本 2 和 版本 3 的区别
  • 利用滑动窗口解题
  • MySQL45讲 第二十讲 幻读是什么,幻读有什么问题?
  • 字符及字符串(ASCII编码系统)
  • 基于yolov8、yolov5的番茄成熟度检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • axios三层封装
  • Java应用线上问题排查指南
  • 16008.行为树(五)-自定义数据指针在黑板中的传递
  • 深入理解 React 架构从概览到核心机制
  • redis 原理篇 28 通信协议 RESP协议
  • LeetCode40:组合总和II
  • SpringBoot集成itext导出PDF
  • i春秋-GetFlag(HTTP请求方法使用,XXF伪造ip)
  • Redis四种架构模式
  • 大模型时代,呼叫中心部门如何建设一套呼出机器人系统?
  • python爬虫实战案例——爬取A站视频,m3u8格式视频抓取(内含完整代码!)
  • Qt文件系统-文本文件读写
  • 蓝桥杯每日真题 - 第8天
  • [CKS] K8S ServiceAccount Set Up
  • UDP协议和TCP协议之间有什么具体区别?
  • Flink+Kafka中Source和Sink的使用
  • ONLYOFFICE8.2版本测评,团队协作的办公软件
  • 新160个crackme - 096-xtFusion-k1
  • 免费送源码:Java+springboot+MySQL 物流车辆管理系统的设计与实现 计算机毕业设计原创定制
  • kafka可视化管理平台-kafka-console-ui