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…

php file_get_contents https 请求 伪造user_agent

在PHP中,使用file_get_contents()函数来发起HTTPS请求时,可以通过设置HTTP请求头来伪造User-Agent。file_get_contents()函数本身不直接支持设置请求头,可以通过上下文(context)参数来实现这一点。 // 目标URL $url …

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

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

Vuetify3 + Nuxt3:跳转详情

在Nuxt 3中&#xff0c;使用v-data-table组件时&#xff0c;我们想要在点击某个行或者某个单元格时进行页面跳转。可以通过监听组件的点击事件&#xff0c;并使用useRouter来实现页面跳转。 <template><v-data-table:headers"headers":items"items&qu…

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

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

了解AsyncRotationController

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

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

设计模式——适配器设计模式 适配器设计模式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 代码…

如何处理Java中数据结构(如HashMap)导致的性能瓶颈

在Java开发过程中&#xff0c;HashMap 是一种常用的数据结构&#xff0c;它提供了高效的键值对存储和快速的查找、插入和删除操作。然而&#xff0c;在某些情况下&#xff0c;HashMap 可能会导致性能瓶颈。本文将探讨这些性能瓶颈的成因&#xff0c;并提供一些优化策略。 一、…

Webkit简介以及工作流程

Webkit简介 WebKit是一个开源的浏览器引擎&#xff0c;最初由苹果公司基于KHTML&#xff08;K Desktop Environment的HTML渲染引擎&#xff09;开发&#xff0c;并广泛应用于Safari浏览器。随着时间的推移&#xff0c;WebKit也被其他多款浏览器和应用所采用&#xff0c;成为We…

pudb: Python的图形化调试器

文章目录 pudb原理基础使用安装pudb启动pudb界面介绍常用操作 高级使用条件断点表达式求值自定义布局搜索和过滤插件和扩展 结论 pudb原理 pudb是一个基于文本的图形化Python调试器&#xff0c;它结合了pdb的强大调试功能与图形用户界面的易用性。pudb通过提供一个可视化的界面…

【操作系统】阻塞队列以及生产者消费者模型

目录 阻塞队列一. 概念二. 标准库中的阻塞队列三. 生产者消费者模型四. 阻塞队列实现 总结 阻塞队列 一. 概念 阻塞队列是⼀种特殊的队列.也遵守"先进先出"的原则. 阻塞队列能是⼀种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续⼊队列就会阻塞,直到…

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

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

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

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

模板语法指令语法——02

//指令语法&#xff1a; 1.什么是指定&#xff0c;有什么作用&#xff1f; 指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式的作用语DOM 2.vue框架中的所有指令的名字都以v-开始的 3.插值是写在标签当中用的&#xff0c;指令…

WSGI 服务器教程:`execute` 方法解析

Python WSGI 服务器教程&#xff1a;execute 方法解析 在本文中&#xff0c;我们将详细解析一个用于 WSGI 服务器的 execute 方法。这个方法负责执行 WSGI 应用程序&#xff0c;处理其响应数据&#xff0c;并确保在应用程序执行过程中处理所有必要的清理工作。我们将逐行解释该…

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

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

编程语言前途:探索未来的无限可能

编程语言前途&#xff1a;探索未来的无限可能 在科技日新月异的今天&#xff0c;编程语言作为连接人类与计算机世界的桥梁&#xff0c;其前途无疑是充满无限可能与挑战的。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入剖析编程语言的前途&#xff0c;带您…

vivado EDIF_EXTRA_SEARCH_PATHS、EQUALIZATION

EDIF_EXTRA_SEARCH_PATHS 此属性定义了Vivado Design Suite在当前文件集上的搜索路径&#xff0c;以 查找设计引用的EDIF文件。 提示&#xff1a;当Vivado设计套件无法执行以下操作时&#xff0c;在实现过程中会出现以下错误 定位与黑盒关联的EDIF网表。这可以通过定义 EDIF_EX…