Qt(一)概念 信号与槽

文章目录

  • 一、概念
    • (一)Qt工具
      • 1. Assistant:帮助手册
      • 2. Designer:Qt设计师
      • 3. xxx.uic文件
      • 4. rcc资源文件
      • 5. moc:元对象编译器
      • 6. qmake
      • 7. Qtcreator:集成化的开发软件
    • (二)创建第一个Qt程序
      • 1. 参考文档
      • 2. 影子构建
      • 3. xxx.pro
      • 4. main.cpp
      • 5. xxx.h
      • 6. xxx.cpp
    • (三)工程文件说明
    • (四)Qt标准类库
      • 1. 标签类:QLabel
      • 2. 按钮类
      • 3. 编辑框
  • 二、 信号和槽机制
    • (一)使用
      • 1. 设计界面
      • 2. 使用提供的信号函数和槽函数
        • (1)
        • (2)通过函数实现
    • (二)自定义信号和槽
      • 1. 自定义信号和槽
      • 2. 使用示例
    • (三)信号函数与槽函数总结

一、概念

Qt是一个跨平台基于C++图形用户界面应用程序开发框架

(一)Qt工具

1. Assistant:帮助手册

在这里插入图片描述

2. Designer:Qt设计师

通过设计师生成的文件的后缀名为xxx.ui
在这里插入图片描述

3. xxx.uic文件

将ui界面编译成C++的文件格式

4. rcc资源文件

5. moc:元对象编译器

信号和槽

6. qmake

xxx.pro文件生成

7. Qtcreator:集成化的开发软件

(二)创建第一个Qt程序

1. 参考文档

2. 影子构建

3. xxx.pro

4. main.cpp

5. xxx.h

6. xxx.cpp

(三)工程文件说明

(四)Qt标准类库

1. 标签类:QLabel

2. 按钮类

3. 编辑框

二、 信号和槽机制

信号和槽机制是一种手段,是一种通信机制,发生子两个组件或者两个组件以上的通信;
信号和槽本质上就是函数,因此可以称为信号函数和槽函数

可以使用提供的信号函数和槽函数,也可以使用自定义的信号函数和槽函数
提供的信号函数通过‘转到槽’进行选择即可,但是提供的槽函数需要自定义;

(一)使用

1. 设计界面

  1. 需求:有两个按钮,一个按钮负责关闭label控件,另一个负责关闭父窗口
  2. 将需要的组件拖到工作区
  3. 修改要修改的组件属性:
    修改组件objectName、文本、字体和大小
    修改父窗口大小
    修改标题windowTitle
  4. 布局(美观)

2. 使用提供的信号函数和槽函数

(1)

第一步:设计界面下方
在这里插入图片描述

第二步:添加信号和槽

(2)通过函数实现

(二)自定义信号和槽

1. 自定义信号和槽

  1. 自定义信号函数
    自定义的信号函数只有声明,没有定义
    emit 自定义的信号函数

  2. 自定义槽函数
    自定义的槽函数既要声明也要定义

返回值类型 
  1. 用于信号函数和槽函数连接:connect

  1. 用于信号函数和槽函数断开:disconnect
[static]

2. 使用示例


  • 注:

(三)信号函数与槽函数总结

1.信号函数和槽函数的形参类型和个数要求一致(使用比较多)
  QObject::connect(发送者,SIGNAL(on_custom_signals()),接收者,SLOT(on_custom_slot()));  //ok
  QObject::connect(发送者,SIGNAL(on_custom_signals(int)),接收者,SLOT(on_custom_slot(int)));  //ok
  QObject::connect(发送者,SIGNAL(on_custom_signals(int,char)),接收者,SLOT(on_custom_slot(int,char)));  //ok
  QObject::connect(发送者,SIGNAL(on_custom_signals(int,char)),接收者,SLOT(on_custom_slot(char,char)));  //error
  
2.信号函数的参数个数可以比槽函数的形参个数多(使用比较少)
   QObject::connect(发送者,SIGNAL(on_custom_signals(int,int)),接收者,SLOT(on_custom_slot(int)));  //ok
   QObject::connect(发送者,SIGNAL(on_custom_signals(int)),接收者,SLOT(on_custom_slot(int,int)));  //error
    
3.槽函数的形参个数一般不可以比信号函数多
  如果槽函数的形参个数比信号函数的形参个数多,可以给槽函数的形参添加缺省值
  QObject::connect(发送者,SIGNAL(on_custom_signals(int)),接收者,SLOT(on_custom_slot(int,int)));  //error
  //想要上面的连接函数成立的话,必须要给槽函数的形参添加缺省值
  QObject::connect(发送者,SIGNAL(on_custom_signals(int)),接收者,SLOT(on_custom_slot(int,int = 缺省值)));  //ok
  
4.一个信号函数可以对应多个槽函数(使用比较多)
  QObject::connect(发送者,SIGNAL(on_custom_signals()),接收者,SLOT(on_custom_slot1()));  //ok
  QObject::connect(发送者,SIGNAL(on_custom_signals()),接收者,SLOT(on_custom_slot2()));  //ok
5.多个信号函数可以对应同一个槽函数(使用比较多)
  QObject::connect(发送者,SIGNAL(on_custom_signals1()),接收者,SLOT(on_custom_slot()));  //ok
  QObject::connect(发送者,SIGNAL(on_custom_signals2()),接收者,SLOT(on_custom_slot()));  //ok

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/774462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫教程第0篇-写在前面

为什么写这个系列 最近开发了个Python爬虫的脚本,去抢一个名额,结果是程序失败了,中间有各种原因,终究还是准备不足的问题。我想失败的经验或许也可贵,便总结一下当初从0开始学Python,一步步去写Python脚本…

多租户hive数仓

1、概念 多租户对应的是单租户,本篇文章重点讲解多租户,单租户为了解内容。 1.1 多租户 多租户技术或称多重租赁技术,简称SaaS,是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业…

14-11 2024 年的 13 个 AI 趋势

2024 年的 13 个 AI 趋势 人工智能对环境的影响和平人工智能人工智能支持的问题解决和决策针对人工智能公司的诉讼2024 年美国总统大选与人工智能威胁人工智能、网络犯罪和社会工程威胁人工智能治疗孤独与对人工智能的情感依赖人工智能影响者中国争夺人工智能霸主地位人工智能…

【浦语大模型开源探索】InternLM实战营第二期:技术笔记与全链路解析

本次课程链接在GitHub上: InternLM/Tutorial at camp2 (github.com) 第一次课程录播链接: 书生浦语大模型全链路开源体系_哔哩哔哩_bilibili InternLM2技术报告: arxiv.org/pdf/2403.17297.pdf 一、书生浦语大模型全链路开源体系笔记 Int…

v-html 空格/换行不生效

接口返回的内容如下&#xff1a;有空格有换行&#xff0c;但 使用v-html无效 需加css样式 white-space: pre-wrap; <div class"pretty-html" v-html"Value"></div>.pretty-html {white-space: pre-wrap; /* 保留空格和换行&#xff0c;并允许…

震撼发布!4M-21:苹果多模态AI巨擘,一键解锁21种模态

前沿科技速递&#x1f680; 来自洛桑联邦理工学院&#xff08;EPFL&#xff09;与苹果科研巨擘的强强联手&#xff0c;震撼发布全新跨时代成果——4M-21模型&#xff01;这一革命性单一模型&#xff0c;突破性地覆盖了数十种高度多样化的模态&#xff0c;通过大规模多模态数据集…

数据洞察:从零到一的数据仓库与Navicat连接全攻略【实训Day04】[完结篇]

一、数据分析 1 实现数据仓库(在hadoop101上) 1) 创建jobdata数据库 # cd $HIVE_HOME # bin/hive hive>create database jobdata; hive>use jobdata; 2) 创建原始职位数据事实表ods_jobdata_orgin(在hadoop101上) create table ods_jobdata_origin( city string CO…

【测试开发】【postman】按顺序循环执行接口

postman按顺序循环执行接口 新建接口接口排序执行请求集合 新建接口 Request 001 Request 002 Request 003 接口排序 在Request 001的Tests中添加代码 postman.setNextRequest("Request 002");在Request 002的Tests中添加代码 postman.setNextRequest("Requ…

ASP.NET Core 使用Log4net

1. Nuget安装log4net&#xff0c;图里的两个 2.项目根目录下添加log4net.config.添加下面的代码: <?xml version"1.0" encoding"utf-8"?> <configuration><!-- This section contains the log4net configuration settings --><log…

“免费”的可视化大屏案例分享-智慧园区综合管理平台

一.智慧园区是什么&#xff1f; 智慧园区是一种融合了新一代信息与通信技术的先进园区发展理念。它通过迅捷信息采集、高速信息传输、高度集中计算、智能事务处理和无所不在的服务提供能力&#xff0c;实现了园区内及时、互动、整合的信息感知、传递和处理。这样的园区旨在提高…

k8s离线安装安装skywalking9.4

目录 概述资源下载Skywalking功能介绍成果速览实践rbacoapoap-svcuiui-svc 结束 概述 k8s 离线安装安装 skywalking9.4 版本&#xff0c;环境&#xff1a;k8s版本为&#xff1a;1.27.x 、spring boot 2.7.x spring cloud &#xff1a;2021.0.5 、spring.cloud.alibab&#xff1…

IDEA如何引入外部jar包

导了3次&#xff0c;记不住&#xff0c;写篇博客记一下&#xff1b; 1、File->Project Structure->项目名称->JARs or Dircetories... 2、选择所要导入的jar包【可多选】&#xff1b;此处图片略&#xff1b; 3、选中后点击确定&#xff0c;jar会显示在idea的目录中&…

零基础必看html5

文本格式化标签 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head&g…

6月30日功能测试Day10

3.4.4拼团购测试点 功能位置&#xff1a;营销-----拼团购 后台优惠促销列表管理可以添加拼团&#xff0c;查看拼团活动&#xff0c;启动活动&#xff0c;编辑活动&#xff0c;删除活动。 可以查看拼团活动中已下单的订单以状态 需求分析 功能和添加拼团 商品拼团活动页 3…

【python】Python中常用的数据结构——列表、元组和字典

python中的数据结构 列表、元组、字典的区别元组&#xff0c;字典&#xff0c;列表三者之间如何实现嵌套生成一个单一元素的元组、列表列表的地址列表、元组和字典的增删改查 列表、元组、字典的区别 列表、元组和字典是Python中常用的数据结构&#xff0c;它们各自有不同的特…

香橙派AIpro测评:yolo8+usb鱼眼摄像头的Camera图像获取及识别

一、前言 近期收到了一块受到业界人士关注的开发板"香橙派AIpro",因为这块板子具有极高的性价比&#xff0c;同时还可以兼容ubuntu、安卓等多种操作系统&#xff0c;今天博主便要在一块832g的香橙派AI香橙派AIpro进行YoloV8s算法的部署并使用一个外接的鱼眼USB摄像头…

14-28 剑和诗人2 - 高性能编程Bend和Mojo

介绍&#xff1a; 在不断发展的计算世界中&#xff0c;软件和硬件之间的界限变得越来越模糊。随着我们不断突破技术可能性的界限&#xff0c;对能够利用现代硬件功能的高效、可扩展的编程语言的需求从未如此迫切。 Bend和 Mojo是编程语言领域的两种新秀&#xff0c;它们有望弥…

RT-Thread Studio与CubeMX联合编程之rtthread启动

看到了好多文章&#xff0c;在rtthread studio中启用mx&#xff0c;后总是复制mx相关msp函数到rt的board.c文件下&#xff0c;实际使用过程中发现并不需要&#xff0c;这里我们看下rt启动流程&#xff0c;看下到底需要不。 1.打开startup_stm32h743xx.S文件&#xff0c;看下芯片…

法国工程师IMT联盟 密码学及其应用 2023年期末考试补考题

1 JAVA 安全 1.1 问题1 1.1.1 问题 用 2 或 3 句话解释 Java 执行模型&#xff08;Java 虚拟机machine virtuelle Java)&#xff09;中引入introduit沙箱bac sable机制 mcanisme d’excution par isolation的目的。 1.1.2 问题解释 在 Java 执行模型&#xff08;Java 虚拟机…