qt学习笔记7:控件、自定义控件封装

2023-11-11

系统提供的控件们

按钮组:

  1. QPushButton 常用按钮
  2. QToolButton 工具按钮 用于显示图片,如果想显示文字,可以修改风格
  3. RadioButton 单选框 如果想设置默认 ui->空间名->setChecked
  4. CheckBox 多选按钮, 也可以设置监听状态 2是选中 1是半选中 0未选中

QListWidge控件:写文字的信息
QTreeWidge控件:设置头, 创建根节点 添加根节点到树控件上
在这里插入图片描述

QTableWidge

在这里插入图片描述
等等 先了解有哪些 要用的时候再深入学习

如Stacked Widget 、combox
在这里插入图片描述
利用QLabel可以显示图片和动图

ui->控件名称->setPixmap(QPixmap("图片路径"));//显示图片

显示动图:

#include<QMovie>
QMovie * movie = new QMovie(":/Image/1.gif");
ui->lbl_movie->setMovie(movie);
move->start();

自定义控件封装

新建新文件 QT 设计是界面类 模板选空窗口Widge 写一个类名 会自动生成.h文件和.cpp文件 还有一个ui文件
在这里插入图片描述

会自动定位到smallWiget.ui这个界面,在这个界面上就可以封装自定义控件 举例一个spinBox 一个Slider 并调整大小将这两个控件封装成固定大小
在这里插入图片描述
现在想在widget中使用这个控件, 首先要将这个控件拿过来
现在的类型是QWidget类型的
在这里插入图片描述
现在widget.ui中也创建一个该类型, 然后右键,选择 提升为,然后填入要提升的类的名称
在这里插入图片描述
全局包含这一选项 可点可不点(点了方便下次再添加), 点击添加, 点击提升,可以看到我们封装控件的类名了
在这里插入图片描述
运行可以在窗口中看到刚刚封装的控件
在这里插入图片描述

但是现在只是把这两个控件组合到一起了,并没有达到两者联动的效果,想要达到两者有关联,就需要在封装的.h和.cpp中写

首先找到这两个控件,可以改成自己顺手的名字,在ui中可以看到,现在第一个控件叫spinBox, 第二个控件叫horizontalSlider,现在需要进度条移动吗,数字也会相应变动
肯定需要用到信号,不熟悉的控件要学会查帮助文档
在这里插入图片描述
注意这边函数重载了
同样进度条的信号和槽函数, 发现没有槽函数
在这里插入图片描述
这时候可以去它父类找
在这里插入图片描述
就有了
在这里插入图片描述
在这里插入图片描述

  //QSpinBox移动,QSlider跟着移动
//    connect(ui->spinBox, &QSpinBox::valueChanged, ui->horizontalSlider, &QSlider::setValue);//valueChanged发生过重载 系统会不知道到底走哪里


       //我们走发送int的那个信号函数  函数指针 返回值都是void (作用域 * 名称)(参数)
    void(QSpinBox:: *spSignal)(int) = &QSpinBox::valueChanged;
    connect(ui->spinBox, spSignal, ui->horizontalSlider, &QSlider::setValue);//这个写法要记住

现在的运行结果是 只要spinBox动 sliderd会动,但是反之还没还有实现

来实现下一个connect
在这里插入图片描述这样就联动了

考虑对外给出接口

在small’W’iget.h中给出public的接口
在这里插入图片描述
在.cpp中
在这里插入图片描述
对外接口这就是已经提供了,现在再关联到控件上,给控件起个名分别为btn_setbtn_get
在这里插入图片描述
现在关联到.cpp文档中
在这里插入图片描述

这就ok 运行也欧克

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt学习笔记7:控件、自定义控件封装 的相关文章

随机推荐

  • 【广州华锐互动】AR远程巡检系统在设备维修保养中的作用

    随着科技的不断发展 AR 增强现实 远程巡检系统在设备检修中发挥着越来越重要的作用 这种系统可以将AR技术与远程通信技术相结合 实现对设备检修过程的实时监控和远程指导 提高设备检修的效率和质量 首先 AR远程巡检系统可以帮助检修人员更好地理
  • NodeJs应用场景【学习路线图】

    Nodejs学习路线图 从零开始nodejs系列文章 将介绍如何利Javascript做为服务端脚本 通过Nodejs框架web开发 Nodejs框架是基于V8的引擎 是目前速度最快的Javascript引擎 chrome浏览器就基于V8
  • 【LeetCode-Java】155. Min Stack

    1 原题 链接 https leetcode com problems min stack Design a stack that supports push pop top and retrieving the minimum eleme
  • 史上最全STL常用容器及其底层存储结构总结

    各大容器的特点 可以用下标访问的容器有 既可以插入也可以赋值 vector deque map 特别要注意一下 vector和deque如果没有预先指定大小 是不能用下标法插入元素的 序列式容器才可以在容器初始化的时候制定大小 关联式容器不
  • [vue3]子组件给父组件传值context.emit

    子组件 用context emit去触发事件 父组件 还是想vue2那样接收
  • 基于Python+Flask实现一个简易网页验证码登录系统案例

    在当今的互联网世界中 为了防止恶意访问 许多网站在登录和注册表单中都采用了验证码技术 验证码可以防止机器人自动提交表单 确保提交行为背后有一个真实的人类用户 本文将向您展示如何使用Python的Flask框架来创建一个简单的验证码登录系统
  • sparksql报错

    执行时报错 org apache spark sql AnalysisException Unable to generate an encoder for inner class cn itcast spark sql Intro Per
  • linux常用文本编辑命令

    cat 命令 cat 命令用于查看纯文本文件 内容较少的 格式为 cat 选项 文件 cat命令常用于查看内容较少的纯文本文件 more 命令 more 命令用于查看纯文本文件 内容较多的 格式为 more 选项 文件 more 命令会在最
  • Ubuntu16.04 LTS自带的Python3.5升级到Python3.7详细记录

    起因 有些第三方库运行只支持Python3 5以上 以及需要使用pip3安装 因此不得不升级Python版本 主要步骤为python官方源码安装 然后修改Python3和pip3的软连接即可 具体升级步骤 安装依赖 sudo apt get
  • Python数据分析与机器学习项目实战

    时值蚂蚁上市之际 马云在上海滩发表演讲 马云的核心逻辑其实只有一个 在全球数字经济时代 有且只有一种金融优势 那就是基于消费者大数据的纯信用 我们不妨称之为数据信用 它比抵押更靠谱 它比担保更保险 它比监管更高明 它是一种面向未来的财产权
  • 迁移学习入门,新手该如何下手?

    推荐迁移学习技术的实用入门图书 自然语言处理迁移学习实战 加纳 保罗 阿祖雷 Paul Azunre 著 李想 朱仲书 张世武 译 一本书带你读懂ChatGPT背后的技术 自然语言处理迁移学习 解锁机器学习新境界 从浅层到深度 掌握NLP迁
  • 2016 OWASP Mobile TOP 10 中文版

    M1 平台使用不当 这个类别包括平台功能的滥用 或未能使用平台的安全控制 它可能包括 Android 的意图 intent 平台权限 TouchID 的误用 密钥链 KeyChain 或是移动操作系统中的其他一些安全控制 有几种方式使移动应
  • javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorExcepti

    问题现象 Java Spring应用发送数据报如下问题 AxisFault faultCode http schemas xmlsoap org soap envelope Server userException faultSubcode
  • 网络编程先导知识

    目录 1 什么是网络协议 2 什么是Socket Socket主要类型 3 C S和B S架构 4 网络字节序和主机字节序 5 局域网和广域网 6 IP地址和端口的概念 1 什么是网络协议 为了在计算机网络中做到有条不紊地交换数据 就必须遵
  • android.content包-----ClipboardManager

    ClipboardManager类介绍 Clipboardmanager类通过getSystemService String 方法进行实例化操作 ClipboardManger类的相关方法很简单 包含set和get剪切板的数据 剪切板的数据
  • Tesseract-OCR 中文识别(附上源码)

    简介 光学字符识别 OCR Optical Character Recognition 是指对文本资料进行扫描 然后对图像文件进行分析处理 获取文字及版面信息的过程 OCR技术非常专业 一般多是印刷 打印行业的从业人员使用 可以快速的将纸质
  • Arcmap卫星影像去黑边(彻底去除黑边)

    在处理栅格数据时 我们常常会遇到一个问题 下载下来的卫星影像数据在Arcmap等软件上会出现黑边问题 如图 出现黑边的原因是因为我们下载影像图层是按外接矩形下载的 所以下载时矩形内没图的地方会填充透明色 透明后下下来后就会用黑色代替 那么我
  • 计算机组成原理-复习题2

    二 简答题 43 请写出8位定点原码整数中能表示的最大正数 最小正数 最大负数和最小负数的机器数形式 并用十进制表示其数值范围 答 最大正数 01111111 最小正数 00000001 最大负数 10000001 最小负数 1111111
  • 【动手学】36 图片增广_代码

    matplotlib inline import torch import torchvision from torch import nn from d2l import torch as d2l d2l set figsize img
  • qt学习笔记7:控件、自定义控件封装

    系统提供的控件们 按钮组 QPushButton 常用按钮 QToolButton 工具按钮 用于显示图片 如果想显示文字 可以修改风格 RadioButton 单选框 如果想设置默认 ui gt 空间名 gt setChecked Che