常用控件(一)

常用控件 一

  • 按钮类控件
    • QPushButton
    • QRadioButton
    • QCheckBox

按钮类控件

QPushButton

使用QPushButton表示一个按钮,这是我们当前最熟悉的一个控件了;
QPushButton继承自QAbstractButton,这个类是个抽象类,是其他按钮类的父类;
在这里插入图片描述

QAbstractButton的一些属性:

属性说明
text按钮文本
icon按钮图标
iconSize按钮图标大小
shortCut按钮对应的快捷键
autoRepeat按钮是否会重复触发;如果设置为true,鼠标左键一直按着,则会产生持续的鼠标点击事件;如果设置为false,鼠标左键一直按着,则不会触发持续的鼠标点击事件,只有当鼠标松开,再次按下才会触发一次鼠标点击事件;
autoRepeatDelay重复触发的延时时间,按住按钮多久过后,开始重复触发
autoRepeatInterval重复触发的周期
  1. QAbstractButton作为QWidget的子类,当然也继承了QWidget的属性,上面介绍的属性是QAbstractButton的单独属性,那么前面介绍的QWidget核心属性对应QAbstractButton同样适用;
  2. Qt的API设计风格非常清晰,上面列出的属性都是可以获取和设置的;eg:获取文本:text();设置文本:setText(“你好”);
  3. 事实上QPushButton的核心功能都是QAbstractButton提供的,自身属性比较少;

eg1.设置带有图标的按钮;

  1. 准备图标
    在这里插入图片描述
  2. 创建qrc文件,并且将上述图标导进去;
    在这里插入图片描述
  3. 编写代码,创建带有图标的按钮;
    在这里插入图片描述
  4. 运行结果如下:
    在这里插入图片描述
    如果我们觉得,图标的大小太小了,那么我们可以通过setIconSize(const QSize&)接口来设置图标的大小:
    在这里插入图片描述

eg2 .设置带快捷键的按钮
设计思路:在界面上主要有5个按钮控件,其中四个按钮控件为方向键,一个按钮控件为target目标控件,当我们使用鼠标点击或者快捷键操作这四个控件的时候,那么这个target目标控件将会跟随着被点击的控件所指的方向所移动;

  1. 导入图标的qrc文件:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 通过图形化界面创建对应的图像,并且通过图形化界面的方式来为每个按钮设置图标:
    在这里插入图片描述
  3. 设置对应的槽函数
    在这里插入图片描述
  4. 设置快捷键
    在这里插入图片描述
  5. 运行结果如下:
    在这里插入图片描述
    不仅可以通过鼠标点击的方式来实现坤坤的移动,同时也可以通过我们设置的"w"、“a”、“s”、"d"来进行操作,忽略大小写;
    当然,我们除了上诉写法之外来设置快捷键,也可以通过下面的方式来进行设计:
    在这里插入图片描述
    也能是实现出快捷键的效果,同时,该方法在设计组合键的时候也比较方便,比如:现在我们就可以设计Ctrl+W来作为向上移动的快捷键:
    在这里插入图片描述
    这样设计过后,w、s、a、d快捷键就不起作用了,只有加上Ctrl才会有反应;
    但是通过上面的使用,我们发现,当我们一直按下快捷键的时候,坤坤会一直移动,而当我们鼠标一直左键按在移动按钮上的时候坤坤没有移动,只有当我们松开了,坤坤才会移动一下,因此,我们需要开启按钮的鼠标持续事件属性:
    在这里插入图片描述
    经过我们的设置过后,我们发现现在鼠标一直按着方向键确实能使坤坤一直移动;

QRadioButton

QRadioButton是单选按钮,可以当我们在多个选项中选择一个;
作为QAbstractButton的子类上面介绍的属性同样也适用于QRadioButton;

QAbstractButton 中和 QRadioButton 关系较⼤的属性

属性说明
checkable是否能被选择;true表示能,false表示不能
checked检测是否被选中;该前提是checkable开启;
autoExclusive是否排他,对于QRadioButton控件来说,他具有排他属性,也就是选中当前单选按钮过后,其它单选按钮会被取消选中状态,对于一个单选按钮来说默认是排他的

说了这么多,单选按钮长啥样?
我们来看看:
在这里插入图片描述

eg1 .选择性别
设计思路:
在界面上有4个控件,一个Label控件,用来显示一些文字;
3个RadioButton控件,一个表示男、一个表示女、一个表示保密

  1. 设计图如下:
    在这里插入图片描述
  2. 设置对应的槽函数
    在这里插入图片描述
  3. 运行结果:
    在这里插入图片描述
    当前的代码中程序启动的时候,什么也没有被选中,我们可以让程序的默认选项为男,因此我们的代码可以按照如下更改:
    在这里插入图片描述
    同理,我们也可以让保密选项无法被选中,这里主要有两种方式来实现:
    ①调用setEnabled直接禁用“其它”控件:
    在这里插入图片描述
    ②调用setCheckable() 让这个控件本身无法被选中,这里的选中是说无法被打勾,但是可以被点击:
    在这里插入图片描述

QAbstractButton的内置信号:
在这里插入图片描述
clicked(): 点击,即鼠标左键按下+松开就会触发该信号;
clicked(bool): 点击,即鼠标左键按下+松开会触发该信号,在触发该信号时,会将该控件是否被选中的状态也一并发送出去,对于QPushButton按钮来说没用,对于QRadioButton来说有用;
pressed(): 按下,即鼠标左键按下,就会触发该信号;
released(): 松开,即鼠标左键松开,就会触发该信号;
toggled(): 按钮状态切换了,就会发送该信号

接着,我们来分别演示一下这几个信号的用法和区别:
在这里插入图片描述

  1. clicked(bool)
    在这里插入图片描述
    运行结果:
    在这里插入图片描述
  1. pressed、released
    对于槽函数:
    在这里插入图片描述
    运行结果如下:
    在这里插入图片描述
  1. toggled(bool)
    当某个按钮状态发生变化过后,那么会触发toggled信号并且该信号会携带上当前按钮的选中状态;
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

eg2 .单选框分组

  1. 设计对应的图形界面:
    在这里插入图片描述
  2. 运行:
    在这里插入图片描述
    我们发现,我们只能选择一个,我们选了汉堡,小食和饮料组的商品我们无法选择,对于其它也是同理;
    这主要是因为,RadioButton按钮的排他性影响的,这里我们主要有两种解决方案:
    ①关闭RadioButton的排他性:
    在这里插入图片描述
    这样确实能解决问题,但是也会引发一个新问题,就是,虽然我接触了排他性了,但是对于同一组中的商品我也能同时选中了,比如:
    在这里插入图片描述
    这是不合理的,我们希望的是,同一组排他,而不同组之间不存在排他性!
    ②采用QButtonGroup分组排他;
    我们使用QButtonGroup将同一组的商品放在一起,然后进行组内排他:
    在这里插入图片描述
    同时也不存在,组内也可以同时选择的情况;

QCheckBox

与QRadioButton单选按钮相对,只能选中一个;QCheckBox表示复选按钮,可以选中多个;

eg:

  1. 设计界面
    在这里插入图片描述
  1. 设置对应的槽函数:
    在这里插入图片描述
  2. 运行结果:
    在这里插入图片描述

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

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

相关文章

anaconda虚拟环境pytorch安装

1.先创建conda的虚拟环境 conda create -n gputorch python3.102.激活刚刚创建好的虚拟环境 conda activate gputorch3.设置镜像源 这一步是后面安装pytorch相关包所需要的来源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple4.查看电脑的显卡…

跨界内容营销:Kompas.ai如何帮助你的品牌打破行业边界

在当今多元化的市场环境中,跨界营销已成为品牌拓展影响力和用户基础的重要策略。通过跨界合作,品牌能够打破行业界限,创造独特的用户体验,从而提升品牌形象和市场竞争力。本文将深入分析跨界营销的作用,详细介绍Kompas…

SliderCaptcha滑块验证码功能

SliderCaptcha滑块验证码功能 资源文件及文档&#xff1a;https://gitee.com/LongbowEnterprise/SliderCaptcha <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><…

mysql 其他类型转换为BIT

看官网说明,BIT没什么特殊之处。但实际操作却不能将任何其他类型字段转为BIT,下面两个都报语法错误 CAST(column AS BIT(1)) AS aa , CAST(column AS BIT) AS bb, BIT value则模式是VARBINARY b1 as cc, -- cc为VARBINARY类型 下面是《高性能MySQL(第四版)》中关于BIT类型的…

cPanel中如何卸载已安装的SSL证书

我使用的Hostease的Linux虚拟主机产品默认带普通用户权限的cPanel面板&#xff0c;由于临时搭建了一个测试的个人的纯静态的网站&#xff0c;不想要安装SSL证书&#xff0c;但是据这边了解HosteaseLinux虚拟主机是只要域名解析指向主机IP&#xff0c;并且绑定到主机&#xff0c…

centos7.9升级4.19内核

centos默认的内核版本是3.10 通过命令 uname -a 输出系统的详细信息 在部署k8s集群时使用默认的3.10版本的内核&#xff0c;容易出各种奇奇怪怪的问题、可以理解为docker和k8s与该内核版本不兼容&#xff0c;所以在部署k8s集群时&#xff0c;务必要升级内核&#xff0c;这里…

引入RabbitMQ

前置条件 docker 安装 mq docker run \-e RABBITMQ_DEFAULT_USERdudu \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hmall \-d \rabbitmq:3.8-management可能会出现&#xff1a;docker: Er…

福昕PDF阅读器取消手型工具鼠标点击翻页

前言&#xff1a; 本文介绍如何关闭福昕PDF阅读器取消手型工具鼠标点击翻页&#xff0c;因为这样真的很容易误触发PDF翻页&#xff0c;使用起来让人窝火。 引用&#xff1a; NA 正文&#xff1a; 新版的福昕PDF阅读器默认打开了“使用手型工具阅读文章”这个勾选项&#x…

五、Redis五种常用数据结构-SET

Redis的Set结构存储的数据和Java中的HashSet类似&#xff0c;都是无序且不重复的。其底层的数据结构有两种&#xff0c;一是当value为整数时&#xff0c;且数据量不大时采用intset来存储。其他情况使用dict字典存储。集合中最多存储232-1(40多亿)个数据。 1、常用命令 sadd k…

Amesim基础篇-热仿真常用模型库-Air Conditioning-Pipes

前言 基于上文对空调库各个元件的介绍&#xff0c;本文进一步将其中的管路展开。 管路介绍 1 摩擦阻力管&#xff08;R&#xff09;&#xff1a; 具有阻力特性的管路&#xff0c;通过管长以及管截面计算阻力。 2 可调节阻力管&#xff08;R&#xff09;&#xff1a; 只具有…

字节薪资解密,张一鸣啥等级?

大家好&#xff0c;我是白露啊。 之前说BAT&#xff0c;可能是指百度、阿里、腾讯&#xff0c;但是现在&#xff0c;这个 B&#xff0c;大多数时候指的是字节跳动了。 随着抖音系产品的流量持续升温&#xff0c;字节跳动已经是一个毋庸置疑的互联网大厂了&#xff0c;不管是想…

小阳的戒S笔记

文章目录 写在前面2024年5月8日21:12:172024年5月9日21:48:242024年5月10日08:04:141、记录昨夜之身体变化2、自身制定之计划1.此亦乃要事&#xff0c;特定问了度娘与GPT&#xff0c;找时间还得咨询专业医师。2.通过跑步宣泄&#xff0c;同时锻炼身体3.我不会有压力&#xff0c…

HFSS学习-day4-建模操作

通过昨天的学习&#xff0c;我们已经熟悉了HFSS的工作环境&#xff1b;今天我们来讲解HFSS中创建物体模型的县体步骤和相关操作。物体建模是HFSS仿真设计工作的第一步&#xff0c;HFSS中提供了诸如矩形、圆面、长方体圆柱体和球体等多种基本模型(Primitive)&#xff0c;这些基本…

Docker学习二(Centos):Docker安装并运行redis(成功运行)

文章目录 前言一、下载并挂载1. 拉取镜像2. 创建挂载目录3. 下载redis.conf文件4. 赋予权限5. 修改redis.conf 默认配置 二、docker运行redis三、检查redis运行状态四、navicat链接redis 前言 一、下载并挂载 1. 拉取镜像 docker pull redis2. 创建挂载目录 fengfanli是我自…

Sarcasm detection论文解析 |基于混合自动编码器的模型对社交媒体平台进行讽刺检

论文地址 论文地址&#xff1a;Electronics | Free Full-Text | Sarcasm Detection over Social Media Platforms Using Hybrid Auto-Encoder-Based Model (mdpi.com) 论文首页 笔记框架 基于混合自动编码器的模型对社交媒体平台进行讽刺检 &#x1f4c5;出版年份:2022 &#x…

5.08.7 CMT: Convolutional Neural Networks Meet Vision Transformers

1. 介绍 将基于 Transformer 的架构应用于视觉领域&#xff0c;并在图像分类、目标检测和语义分割等各种任务中取得了有希望的结果。 Vision Transformer (ViT)是第一个用纯 Transformer 替代传统 CNN 主干的工作。输入图像&#xff08;2242243&#xff09;首先被分割成196个不…

系统架构设计师 - 计算机组成与体系结构(1)

计算机组成与体系结构 计算机组成与体系结构计算机结构 ★CPU 组成结构运算器组成控制器组成 计算机体系结构冯诺依曼结构哈弗结构 嵌入式芯片&#xff08;了解&#xff09; 存储系统 ★★★★概述Cache主存编址磁盘管理磁盘基本结构与存取过程磁盘优化分布存储磁盘管理 大家好…

绝地求生:杜卡迪联动下架,兰博基尼联动预计在下半年上线!

杜卡迪联名活动即将在5月8日上午八点下架&#xff0c;届时商城内购买-升阶活动将不可用。 杜卡迪下架 本次杜卡迪联名是蓝洞首次以非通行证方式进行的载具联名活动&#xff0c;玩家认为有利有弊。 多数玩家表示非通行证-仅抽奖获取的方式成本太高&#xff0c;部分脸黑玩家本次…

c++ poencv Project2 - Document Scanner

惯例先上结果图&#xff1a; 本文提供一种文本提取思路&#xff1a; 1、首先图像预处理&#xff1a;灰度转换、高斯模糊、边缘提取&#xff0c;膨胀。 Mat preProcessing(Mat img) {cvtColor(img, imgGray, COLOR_BGR2GRAY);GaussianBlur(imgGray, imgBlur, Size(3, 3), 3, …

基于鸢尾花数据集的四种聚类算法(kmeans,层次聚类,DBSCAN,FCM)和学习向量量化对比

基于鸢尾花数据集的四种聚类算法&#xff08;kmeans&#xff0c;层次聚类&#xff0c;DBSCAN,FCM&#xff09;和学习向量量化对比 注&#xff1a;下面的代码可能需要做一点参数调整&#xff0c;才得到所有我的运行结果。 kmeans算法&#xff1a; import matplotlib.pyplot a…