QT--槽函数和控件篇一

一、自定义信号和槽函数

  1. QT 将信号和槽集成在QObject类中;发送者和接受者都必须继承这个类。
  2. Q_OBJECT宏是实现信号和槽机制、属性系统和元对象系统的关键。Q_OBJECT宏必须出现在每个使用信号和槽的类中,因为它为这些类提供了必要的元数据和功能。
  3. 信号在类的“signal”部分声明,不需要实现。但是可以有参数,使得槽函数可以根据传递的数据执行相应的操作。这种机制非常灵活,允许在信号发出时传递具体的上下文信息,给槽函数提供足够的信息来完成其任务。
  4. 信号通过emit关键字发射,可以在类的任何成员函数中发射信号(包括构造函数,表明一开始就发送信号)。例如:emit sender("fasongzhe");
  5. 槽函数在类的public slots、protected slots或private slots部分声明,并且像普通成员函数一样实现
  6. 使用connect函数连接,一定要创建发送者和接受者。定义了它们的类当然要实现啊。
  7. connect举例:connect(&sender, SIGNAL(valueChanged(int, int)), &receiver, SLOT(onValueChanged(int, int)));
    在这里插入图片描述

二、在QT中批量添加图片

在这里插入图片描述在这里插入图片描述

  1. 出现这种情况:是因为没有将图片也就是资源文件放在工程目录下,可以将图片集合放在文件夹里面,再移入工程目录下。然后再添加,可以全选
    在这里插入图片描述
    单个的文件直接复制,然后切换到工程目录下,直接保存即可
    在这里插入图片描述
    在这里插入图片描述
    好了,这就添加完成了。使用图片时是在程序中添加它的路径名。右键–>copy" "

三、按钮QPushButton

1.按钮有三种触发信号,分别是

  • clicked() 点击按钮发出该信号
  • pressed() 按压的时候
  • released() 释放的时候
  1. 通过按钮函数中提供的方法,可以使用setText(“设置文本”);ui->QPushButton->setText("登录");
  • 用text()函数获取按钮显示,QSring buttonText = ui->QPushButton->text();
  • text() 函数主要用于获取文本显示控件(如 QPushButton, QLabel, QLineEdit 等)的文本内容。然而,并不是所有控件都有 text() 函数。具体来说,只有那些显示文本内容的控件才有这个方法。
  1. 使能函数setEnabled()
  • 在 Qt 中,setEnabled 方法用于启用或禁用控件。如果控件被禁用,它将无法与用户进行交互(例如,按钮将变灰并且无法点击)。这是一个非常常用的方法,可以应用于几乎所有的 QWidget 及其子类。

  • 括号内填写布尔值。

  • isEnabled 方法用于检查一个控件当前是否处于启用状态(即控件是否可以与用户进行交互)。它返回一个布尔值,如果控件是启用的,则返回 true,否则返回 false。

  • 在 Qt 中,setEnabled 和 isEnabled 方法经常一起使用,前者设置控件的启用状态,后者检查控件的启用状态。

ui->QPushButton->setEnabled(false);//使QPushButton按钮无效bool isEnabled = inputField->isEnabled();inputField->setEnabled(!isEnabled);//使inputFiled按钮处于相反状态。
  1. 手工创建按钮
  • 先在class widget的private部分创建按钮指针(方便new)QPushButton *ptManualBtn;,创建两个按钮就添加两个,注意不要同名
 /* 手工创建按钮 使用 */ptManualBtn = new QPushButton;      //在内存中创建对象ptManualBtn->setText("手工");ptManualBtn->setParent(this);       //设置按钮的父对象 窗体ptManualBtn->setGeometry(200,420,100,30);  //setGeometry(x,y,w,h);--------------------------上三句也可以改为ptManulBtn = new QPushButton("手工",this;当然如果在private处定义了 `QLabel *statusLabel;`
statuslabel = new QLabel("This is a label", this);//创建标签
  • 当然也可以不在private处添加,直接在构造函数中写
QLabel *label = new QLabel("This is a label", this);
label->setGeometry(10, 130, 150, 30);//这种方式适用于按钮仅在构造函数中使用的简单场景。

四、标签Qlabel

  • QLabel 是 Qt 框架中的一个控件类,用于显示文本图像。它可以用来展示静态信息,如标签、图片、状态信息等。在图形用户界面中,QLabel 是一种非常常见的控件,可以用来指示或展示内容。也可以显示动态的东西。
  • setPixmap 函数是 QLabel 类的一个成员函数,用于在标签中显示一张图片 (QPixmap)。当你调用 setPixmap 时,你将一个 QPixmap 对象设置为标签的显示内容。例如ptLabel->setPixmap( QPixmap(":/human01-08.png"));
  • setScaledContents 是 QLabel 类的一个成员函数,用于控制标签中的内容是否自动缩放以适应标签的大小。例如ptManualLabel->setScaledContents(true);,默认情况下,setScaledContents 是 false,即标签内容不会自动缩放,而是以其原始大小显示。如果标签的尺寸比内容大,内容会居中显示;如果标签的尺寸比内容小,内容会被裁剪。
//显示文本
ptLabel = new QLabel("I am sorry that you didn’t get on well with schoolwork recently. And you didn’t get on well with your classmates, either. I think it’s norma",this);ptLabel->setWordWrap(true);//true表示允许自动换行//显示图片
ptLabel = new QLabel;
ptLabel->setParent(this);//设置 ptManualLabel 的父对象为当前的窗口(this)。
ptLabel->setPixmap( QPixmap(":/human01-08.png"));//是下面的简写(匿名函数)
//QPixmp x(":/human01-08.png");//创建一个 QPixmap 对象,并加载资源文件中的图片 :/human02-12.png。
//ptLabel->setPixmap(x);//将加载的 QPixmap 设置为 ptManualLabel 显示的内容。
ptManualLabel->setGeometry(10, 80, 300, 300);//设置尺寸
ptManualLabel->setScaledContents(true);//设置标签内容自动缩放以适应标签大小。
//说明:这意味着如果标签的大小变化,图片会自动缩放以适应标签的尺寸。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mindspore打卡23天之基于MobileNetv2的垃圾分类函数式自动微分

基于MobileNetv2的垃圾分类 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写(Python语言)&a…

从0开始的STM32HAL库学习5

旋转编码计数器 修改中断代码 void EXTI0_IRQHandler(void) {/* USER CODE BEGIN EXTI0_IRQn 0 */if(__HAL_GPIO_EXTI_GET_FLAG(PB0_Pin)){if(HAL_GPIO_ReadPin(PB1_GPIO_Port, PB1_Pin)GPIO_PIN_RESET){count--;}/* USER CODE END EXTI0_IRQn 0 */HAL_GPIO_EXTI_IRQHandler…

Java技术栈总结:容器集合篇

一、List 1、ArrayList (1)底层数据结构 底层数据结构为数组。数组是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 Q:为什么数组索引下标从0开始? A:从0开始,对应寻址公式:a[i]…

dolphinScheduler + hive + datax报错记录

1、参数错误 报错信息 [INFO] 2024-04-11 06:43:18.386 - [taskAppIdTASK-29-3301-84461]:[498] - after replace sql , preparing : insertoverwrite table mis_month partition (dt) select nvl(sl.slid , ) as id,--水量 IDnvl(sl.hh …

MongoDB教程(二):mongoDB引用shell

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…

了解AsyncRotationController

概述 基于android 15.0, 以从强制横屏App上滑退回桌面流程来分析 frameworks/base/services/core/java/com/android/server/wm/AsyncRotationController.javaAsyncRotationController 是一种控制器,用于处理设备显示屏旋转时非活动窗口的异步更新。这种控制器通过…

设计模式——适配器设计模式

设计模式——适配器设计模式 适配器设计模式1.1 基本介绍1.2 工作原理1.3 类适配器模式1.3.1 基本介绍1.3.2 示例1.3.3 代码实现1.3.4 注意事项 1.4 对象适配器模式1.4.1 基本介绍1.4.2 示例1.4.3 代码实现1.4.4 注意事项 1.5 接口适配器模式1.5.1 基本介绍1.5.2 示例1.5.3 代码…

Splashtop 在医疗与制药领域的业务增长近五倍

2024年7月10日 加利福尼亚州库比蒂诺 Splashtop 是安全远程访问和 IT 支持解决方案领域的领先企业,该公司今天宣布,在医疗与制药领域业务同比增长492%,取得了里程碑式的成就。快速发展的数字实验室环境和持续的网络安全威胁需要实施无缝、安…

Unity之VS脚本自动添加头部注释Package包开发

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之VS脚本自动添加头部注释Package包开发 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&…

uniapp启动图延时效果,启动图的配置

今天阐述uniapp开发中给启动图做延迟效果,不然启动图太快了,一闪就过去了; 一:修改配置文件:manifest.json "app-plus" : {"splashscreen" : {"alwaysShowBeforeRender" : false,"…

法律咨询援助网站

1 项目介绍 1.1 摘要 随着互联网技术的飞速发展,公众对于便捷、高效的法律咨询服务需求日益增长。传统的法律咨询方式已难以满足人们即时性、多样化的咨询需求,促使法律咨询援助网站应运而生。这些平台旨在通过数字化手段,为用户提供法律知…

apache:the requested operation has failed使用httpd -t

Apache24\bin cmd 回车 httpd -t 因为我重新压缩了,记住,重新压缩要使用原路径, 因为你安装的 时候使用的是原路径 还是不行就改个端口,切记修改配置文件httpd.conf先把Tomcat停了 Define SRVROOT "F:\Apache\Apache24&q…

C++类和对象学习笔记

1.类的定义 1.1类定义的格式 class是定义类的关键字,Date为类的名字,{ }中为类的主体,注意定义类结束时后面的分号不能省略。类中的内容称为类的成员;类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成…

自定义枚举对象序列化规则: 在Json中以枚举的code值表示枚举;枚举序列化时,新增枚举描述字段;String到IEnum的转换

文章目录 引言I 案例分析1.1 接口签名计算1.2 请求对象1.3 枚举对象序列化1.4 创建JavaTimeModule以支持Java 8的时间日期类型序列化和反序列化1.5 请求对象默认值处理II 在JSON中以枚举的code值来表示枚举的实现方式2.1 自定义toString方法返回code2.2 使用@JsonValue注解,只…

adminPage-vue3依赖FormPage说明文档,表单页快速开发,使用思路及范例(Ⅱ)formConfig基础配置项

adminPage-vue3依赖FormPage说明文档,表单页快速开发,使用思路及范例(Ⅱ)formConfig配置项 属性: formConfig(表单项设置)keylabelnoLabeldefaultValuebindchildSlottypeString类型数据(除 time…

IntelliJ IDEA 2024.1.4最新教程!!直接2099!!爽到飞起!!

IntelliJ IDEA 2024.1.4最新破解教程!!直接2099!!爽到飞起!!【资源在末尾】安装馆长为各位看官准备了多个版本,看官可根据自己的需求进行下载和选择安装。https://mp.weixin.qq.com/s/Tic1iR_Xc…

【鸿蒙学习笔记】关系型数据库概述

目录标题 关系型数据库的运行机制样例代码共通方法 DBUtilsIndex 代码效果 关系型数据库的运行机制 1、 关系型数据库对应用提供通用的操作接口,底层使用SQLite作为持久化存储引擎,支持SQLite具有的数据库特性,包括但不限于事务、索引、视图…

自建邮件服务器有哪些方法步骤与注意事项?

自建邮件服务器如何设置解析?邮件服务器怎么使用? 自建邮件服务器可以为个人或企业提供更多的灵活性和控制权,然而,这也是一个复杂且需要谨慎处理的任务。AokSend将探讨自建邮件服务器的基本方法步骤和需要注意的事项。 自建邮件…

逻辑回归(纯理论)

1.什么是逻辑回归? 逻辑回归是一种常用的统计学习方法,主要用于解决分类问题。尽管名字中包含"回归",但它实际上是一种分类算法 2.为什么机器学习需要使用逻辑回归 1.二元分类 这是逻辑回归最基本和常见的用途。它可以预测某个事…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【HMAC(C/C++)】

HMAC(C/C) HMAC是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),是一种基于Hash函数和密钥进行消息认证的方法。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 生…