【Qt】控件介绍

news2024/11/26 0:49:18

 控件概念

        一个图形化界面上的内容,在编写代码的时候不需要全部从零开始实现。Qt种已经提供了很多内置的控件(按钮、文本框、单选按钮、复选按钮、下拉框等等),直接进行使用即可。

        控件,英文名称widget,控件是界面上的各种元素的“统称”。

在Qt Designed左侧这一长条,就是Qt已经内置好的控件了。

控件的发展历程

控件是 GUI 开发中的通⽤概念.,不仅仅局限在 Qt里。

第一个阶段

        完全没有控件. 此时需要通过⼀些绘图 API ⼿动的绘制出按钮或者输⼊框等内容, 代码编写繁琐。
开发GUI界面上显示出来的东西,全部都可以看作是“画”出来的。
        显示器显示的内容,可以理解成“画布”,操作系统,就可以提供一些API,让你在画布上进行画点、线、矩形或者填充各种颜色等等。此时,开发一个图形化界面的程序,就相当于先画一个窗口(矩形)。

例如:文曲星,当时有很多的开发者就是基于这个平台开发了很多的程序。 

第二个阶段

控件的概念被逐渐被引入,但是早期的控件比较简单,数量比较有限,例如HTML,就包含很多标签,不同的标签具有不同的效果。<img>图形,<a>链接,<input>输入框,<button>按钮。

第三个阶段

随着时代的发展,新的GUI开发体系越来越丰富,提供的控件数量、质量越来越提示了。

整体来说,种类和效果都大幅度提示。

Qt的控件虽然很多,但是整体来说,颜值还是比更现代的控件体系要更逊色一点。但是Qt Designer中展示的控件都是默认的样子,Qt还提供了一些优化手段,可以让控件变得更好看。

例如Qt近几年提供的Qt Design Studio所制作出来的界面美观程度就是业界最领先的一档。

QWidget核心属性

Qt中各种控件都是继承自QWidget类,可以说QWidget就包含了Qt整个控件体系中通用的部分。

在Qt Creator右侧,可以看到QWidget的各种属性,并且也能直接在右侧进行编辑,这里的各种属性都可以通过Qt的文档进行了解。但是里面的内容较多,不需要每一个都去仔细钻研,只需要认识其中比较常用,比较重要的属性即可。

属性作用
enabled
设置控件是否可使⽤. true 表⽰可⽤, false 表⽰禁⽤.
geometry
位置和尺⼨. 包含 x, y, width, height 四个部分.
其中坐标是以⽗元素为参考进⾏设置的
windowTitle
设置 widget 标题
windowIcon
设置 widget 图标
windowOpacity
设置 widget 透明度
cursor
⿏标悬停时显⽰的图标形状.
是普通箭头, 还是沙漏, 还是⼗字等形状.
在 Qt Designer 界⾯中可以清楚看到可选项.
font
字体相关属性.
涉及到字体家族, 字体⼤⼩, 粗体, 斜体, 下划线等等样式。
toolTip
⿏标悬停在 widget 上会在状态栏中显⽰的提⽰信息
toolTipDuring
toolTip 显⽰的持续时间
statusTip
Widget 状态发⽣改变时显⽰的提⽰信息(⽐如按钮被按下等)
whatsThis
⿏标悬停并按下 alt+F1 时, 显⽰的帮助信息(显⽰在⼀个弹出的窗⼝中)
styleSheet
允许使⽤ CSS 来设置 widget 中的样式.
Qt 中⽀持的样式⾮常丰富, 对于前端开发⼈员上⼿是⾮常友好的
focusPolicy
该 widget 如何获取到焦点。
  • Qt::NoFocus:控件不参与焦点管理,即⽆法通过键盘或⿏标获取焦点
  • Qt::TabFocus:控件可以通过Tab键获得焦点
  • Qt::ClickFocus:控件可以通过⿏标点击获得焦点  
  • Qt::StrongFocus:控件可以通过键盘和⿏标获得焦点
  • Qt::WheelFocus:控件可以通过⿏标滚轮获得焦点(在某些平台或样式中可能不可⽤)
contextMenuPolicy
上下⽂菜单的显⽰策略.
  • Qt::DefaultContextMenu:默认的上下⽂菜单策略,⽤⼾可以通过⿏标右键或键盘快捷键触发上下⽂菜单
  • Qt::NoContextMenu:禁⽤上下⽂菜单,即使⽤⼾点击⿏标右键也不会显⽰菜单
  • Qt::PreventContextMenu:防⽌控件显⽰上下⽂菜单,即使⽤⼾点击⿏标右键也不会显⽰菜单
  • Qt::ActionsContextMenu:将上下⽂菜单替换为控件的“动作”菜单,⽤⼾可以通过⿏标右键或键盘快捷键触发这个菜单
  • Qt::CustomContextMenu:使⽤⾃定义的上下⽂菜单,⽤⼾可以通过⿏标右键或键盘快捷键触发这个菜单
locale
设置语⾔和国家地区.
acceptDrops
该部件是否接受拖放操作。
如果设置为true,那么该部件就可以接收来⾃其他部件的拖放操作。当⼀个部件被拖放到该部件上时,该部件会接收到相应的拖放事件(如dropEvent)。
如果设置为false,那么该部件将不会接收任何拖放操作。
minimumSize
控件的最⼩尺⼨. 包含最⼩宽度和最⼩⾼度.
maximumSize
控件的最⼤尺⼨. 包含最⼤宽度和最⼤⾼度.
sizePolicy
尺⼨策略. 设置控件在布局管理器中的缩放⽅式
windowModality
指定窗⼝是否具有 "模态" ⾏为
sizeIncrement
拖动窗⼝⼤⼩时的增量单位
baseSize
窗⼝的基础⼤⼩, ⽤来搭配 sizeIncrement 调整组件尺⼨是计算组件应该调整到的合适的值.
palette
调⾊板. 可以设置 widget 的颜⾊⻛格
mouseTracking
是否要跟踪⿏标移动事件.
如果设为 true, 表⽰需要跟踪, 则⿏标划过的时候该 widget 就能持续收到⿏标移动事件.
如果设为 false, 表⽰不需要跟踪, 则⿏标划过的时候 widget 不会收到⿏标移动事件, 只能收到⿏标按下或者释放的事件.
tabletTracking
是否跟踪触摸屏的移动事件.
类似于 mouseTracking . Qt 5.9 中引⼊的新属性.
layoutDirection
布局⽅向.
  • Qt::LeftToRight:⽂本从左到右排列,也是默认值。
  • Qt::RightToLeft:⽂本从右到左排列。
  • Qt::GlobalAtomics:部件的布局⽅向由全局原⼦性决定(PS 这个翻译其实有点尴尬. 其实就是根据应⽤程序中的其他 widget 布局⽅向确定的).
autoFillBackground
是否⾃动填充背景颜⾊.
windowFilePath
能够把 widget 和⼀个本地⽂件路径关联起来. PS: 其实作⽤不⼤.
accessibleName
设置 widget 的可访问名称. 这个名称可以被辅助技术 (像屏幕阅读器) 获取到.
这个属性⽤于实现⽆障碍程序的场景中 (也就是给盲⼈写的程序).
PS: 其实盲⼈也是可以使⽤电脑和⼿机的. 甚⾄盲⼈还能成为程序猿. 参⻅
https://www.bilibili.com/video/BV1954y1d7z9
accessibleDescripti
on
设置 widget 的详细描述. 作⽤同 accessibleName
inputMethodHints
针对输⼊框有效, ⽤来提⽰⽤⼾当前能输⼊的合法数据的格式. ⽐如只能输⼊数字, 只能
输⼊⽇期等.

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

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

相关文章

企业源代码加密软件有哪些?2024最好用的十款源代码加密软件

在当今快速发展的技术环境中&#xff0c;企业源代码的安全性至关重要。源代码不仅包含着企业的核心知识产权&#xff0c;还可能涉及敏感的商业数据。因此&#xff0c;选择一款合适的源代码加密软件&#xff0c;对于保护企业资产和避免数据泄露风险至关重要。随着安全技术的不断…

(回溯) LeetCode 47. 全排列||

原题链接 建议先练习&#xff1a;全排列| 一. 题目描述 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&a…

【JavaEE初阶】线程池

目录 &#x1f4d5; 引言 &#x1f333; 概念 &#x1f340;ThreadPoolExecutor 类 &#x1f6a9; int corePoolSize与int maximumPoolSize&#xff1a; &#x1f6a9; long keepAliveTime与TimeUnit nuit&#xff1a; &#x1f6a9; BlockingQueue workQueue&#xff1a…

C# 序列化与反序列化指南:将对象数据写入/读取到XML文件

文章目录 1. XML 文件的基本概念以及为何使用 XML 文件进行数据序列化2. C# 中的 XML 文件序列化使用 XmlSerializer 类进行操作的详细步骤3. 创建一个自定义对象并序列化对象数据到 XML 文件的示例代码4. 读取 XML 文件并反序列化&#xff08;将 XML 数据转换为对象数据&#…

【Redis】Redis 初探:特性、应用场景与高并发架构演进之路

目录 初识 Redis关于 Redis服务端高并发分布式结构演进之路概述常⻅概念基本概念应⽤&#xff08;Application&#xff09;/ 系统&#xff08;System&#xff09;模块&#xff08;Module&#xff09;/ 组件&#xff08;Component&#xff09;分布式&#xff08;Distributed&…

LVS 、DR模式

lvs --环境 主机名IP地址功能web1192.168.1.17 rs web2192.168.1.18realservenat 内&#xff1a;192.168.1.16 外&#xff1a;192.168.1.102 directorserver,ntpdns192.168.1.12dns --web1、web2 yum -y install nginxecho "xx" > /usr/share/nginx/html/index.…

系统编程 day10 进程2

进程创建之后&#xff1a; 1.任务-----子进程与父进程干的活差不多 2.父进程创建出子进程之后&#xff0c;子进程做的与父进程完全不同 shell程序-----bash----- 以上为进程运行的过程中&#xff0c;典型的两种应用场景 能够改变子进程的执行效果的函数是exec函数族 l和v&a…

【2024】k8s集群 图文详细 部署安装使用(两万字)

目录&#x1f4bb; 一、前言二、下载依赖配置环境1、配置系统环境1.1、配置桥接网络1.1.1、parallels desktop配置1.1.2、VMware配置 1.2、配置root用户登陆 2、环境配置安装下载2.1、安装ipset和ipvsadm2.2、关闭SWAP分区 3、配置Containerd容器3.1、下载安装Containerd3.2、创…

数据结构之线性表(单链表的实现)

目录 一、单链表的原理 二、单链表的实现 1.单链表的定义 2.单链表的初始化 3.清空单链表 4.单链表是否为空 5.单链表的长度 6.获取指定位置 i 的元素 7.获取指定元素 e 的位置 8.向链表中插入指定位置的元素 9.向链表中删除指定位置的元素 10.遍历链表中的元素 …

zdppy+vue3+onlyoffice开发文档管理系统实战 20240813登录功能中Python生成验证码校验的研究

遗留的问题 1、登录功能 5、设计登录的接口 6、前后端联调&#xff0c;实现登录功能 7、要记录登录的Token和用户名&#xff0c;跳转到首页 2、注册功能 3、用户管理 4、角色管理 5、权限管理 6、分享功能 tb_user拆成基本信息和详细信息两张表。 6、前后端联调&#xff0c…

设计模式-标识映射(Identity Map)

概念 通过在映射中保存每个已经加载的对象&#xff0c;确保每个对象只加载一次。当要访问对象的时候&#xff0c;通过映射来查找他们。 从数据库加载对象时&#xff0c;对象与其映射的一致性、重复加载&#xff0c;这些都是需要得到保证的。 标识映射记录在一个业务事务中从数…

2024年中国AI大模型场景应用趋势解读

引言 >> 近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;AI大模型逐渐成为推动各行业数字化转型的重要驱动力。本文从行业现状、应用痛点、发展趋势以及投资机会等方面进行详细解读&#xff0c;探讨AI大模型在未来的广泛应用前景。 一、AI大模型行业应用现状…

【LLM大模型】Llama3.1 部署本地知识库应用

一. 环境介绍 高性能应用服务 HAI 拥有丰富的预装应用&#xff0c;可以将开源社区的前沿模型快速转化为您专有的部署实践&#xff0c;一键拉起&#xff0c;即开即用。现已支持在HAI购买页的社区应用中&#xff0c;找到Llama 3.1等应用的入口&#xff0c;简单选型后&#xff0c…

【MySQL 05】数据类型

&#x1f308; 一、数据类型的作用 如果向 MySQL 特定的类型中插入不合法的数据&#xff0c;MySQL 一般会将本次操作直接拦截。反过来讲&#xff0c;能被成功插入到 MySQL 中的数据一定合法。在 MySQL 中&#xff0c;数据类型本身也是一种约束&#xff0c;这种约束约束的是使用…

一篇文章教会你如何使用Haproxy,内含大量实战案例

1. Haproxy 介绍 HAProxy是法国开发者 威利塔罗&#xff08;Willy Tarreau&#xff09; 使用C语言编写的自由及开放源代码软件&#xff0c;是一款具备高并发&#xff08;万级以上&#xff09;、高性能的TCP和HTTP应用程序代理. HAProxy运行在当前的硬件上&#xff0c;可以支持…

Ubuntu20源码安装Moveit 与 OMPL

文章目录 一、源码安装OMPL1.1 先检查是否安装二进制ompl1.2 若已经提前安装二进制&#xff0c;需要先行卸载1.3 OMPL官网安装教程 一、源码安装OMPL 1.1 先检查是否安装二进制ompl //进入到如下目录下 cd /opt/ros/noetic/// 查找 find ./ -name "libompl*" find .…

Linux用户ID和组ID

在 Linux 系统中&#xff0c;用户和组 ID 用于识别进程和文件的访问权限。每个进程都有与之关联的实际用户 ID、实际组 ID、有效用户 ID、有效组 ID 以及附属组 ID。 实际用户 ID (Real User ID, UID) 定义&#xff1a;实际用户 ID 是启动进程的用户的 ID。作用&#xff1a;标…

文件中找TopK问题 的详细讲解

一&#xff1a;问题&#xff1a; 从一个包含10000整数的文件中找出最大的前10个数。 二&#xff1a;方法&#xff1a; 1&#xff1a;先直接拿文件的前10个数&#xff0c;建造一个小堆 2&#xff1a;再依次读取文件中&#xff0c;剩下的数&#xff0c;比堆顶大&#xff0c;则…

【MATLAB源码-第246期】基于matlab的秃鹰搜索优化算法(BES)机器人栅格路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 秃鹰搜索优化算法&#xff08;Bald Eagle Search, BES&#xff09;是一种新颖的群体智能优化算法&#xff0c;受自然界中秃鹰猎食行为的启发而设计。与其他群体智能算法类似&#xff0c;BES试图通过模拟自然界的某些行为来解…

SSM药房管理系统---附源码18275

目录 摘要 1 绪论 1.1 研究目的意义 1.2国内外研究现状 2 药房管理系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2经济可行性分析 2.1.3社会可行性分析 2.1.4操作可行性分析 2.2 系统流程分析 2.2.1数据新增流程 2.2.2数据删除流程 2.3 药房管理系统 功能分…