【Qt 学习笔记】Qt控件概述


  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

Qt控件概述

文章编号:Qt 学习笔记 / 14

文章目录

  • Qt控件概述
    • 一、控件概述
    • 二、控件的发展史
      • 1. 控件三个阶段
      • 2. 各控件的作用
    • 三、控件属性概览
      • 1. QWidget属性及作用


一、控件概述

控件(Widget)是指用于图形用户界面(GUI)的可视化元素,通过与用户的交互来显示信息、接收输入或触发操作。控件通常由一个可视化的图标、按钮或者其他视觉元素以及与之相关联的事件处理函数组成。

控件可以接受用户的输入,例如按钮可以通过鼠标点击或者键盘操作来触发相关的事件。控件还可以显示信息,例如标签可以显示文本、图像或者其他数据。控件的外观和行为可以通过设置属性或者调用方法来进行定制和修改。

常见的控件包括按钮、文本框、标签、下拉菜单、滚动条等。控件可以单独使用,也可以组合在一起形成复杂的用户界面。控件可以根据需要调整大小、移动位置、隐藏或显示。

Qt 作为⼀个成熟的 GUI 开发框架, 内置了⼤量的常⽤控件,并且 Qt 也提供了 “⾃定义控件” 的能力。在前面的文章中使用到的QPushButton等就属于控件。在Qt Creator中提供了许多控件如下图:
在这里插入图片描述

注意:在学习Qt中掌握这些控件是重要的任务,这些Qt内置的控件可以极大的帮助我们在开发出所需要的界面


二、控件的发展史

控件的发展史可以追溯到计算机用户界面的发展过程。控件的发展史可以看出,随着计算机技术的发展和用户需求的不断变化,控件的功能和形式也在不断演进和创新。控件是 GUI 开发中的通⽤概念,不仅仅局限在 Qt 中。

1. 控件三个阶段

在这里插入图片描述

  • 第一阶段:完全没有控件. 此时需要通过⼀些绘图 API ⼿动的绘制出按钮或者输⼊框等内容, 代码编写繁琐.例如⽂曲星的 Lava 平台开发.
    在这里插入图片描述

  • 第二阶段:只包含粗略的控件. 只是提供了按钮, 输⼊框, 单选框, 复选框等最常⽤的控件.例如 html 的原⽣控件.
    在这里插入图片描述

  • 第三阶段:更完整的控件体系, 基本可以覆盖到 GUI 开发中的⼤部分场景.例如早期的 MFC, VB, C++ Builder, Qt, Delphi, 后来的 Android SDK, Java FX, 前端的各种 UI 库等.
    在这里插入图片描述

2. 各控件的作用

  • 提示符命令行控件:在早期的计算机系统中,用户与计算机之间的主要交互是通过命令行界面。用户通过输入命令来与计算机进行交互,并通过提示符来向计算机提供命令。

  • 文本框和按钮控件:随着个人计算机的出现,图形用户界面开始流行起来。文本框和按钮控件成为用户与计算机进行交互的基本元素。用户可以在文本框中输入文本,并通过按钮来执行特定的操作。

  • 下拉列表和复选框控件:为了提供更多的选择和选项,下拉列表和复选框控件开始被添加到用户界面中。下拉列表控件允许用户从一个预定义的选项列表中选择一个选项,而复选框控件允许用户从多个选项中选择多个选项。

  • 滑块和进度条控件:随着计算机应用程序的多样化,滑块和进度条控件被添加到用户界面中,以提供更直观的用户体验。滑块控件允许用户选择一个数值或范围,而进度条控件则用于显示任务的进度。

  • 标签和图像控件:为了改善用户界面的可读性和可视化效果,标签和图像控件被引入到用户界面中。标签控件用于显示文本或标识信息,而图像控件则用于显示图像或图形。

  • 菜单和工具栏控件:为了提供更多的功能和选项,菜单和工具栏控件被添加到用户界面中。菜单控件提供了一个层次结构的选项集合,用户可以通过点击菜单项来选择特定的操作。工具栏控件则提供了常用的操作按钮,用户可以通过点击按钮来执行特定的操作。

  • 数据输入和呈现控件:随着计算机应用程序的复杂化,各种数据输入和呈现控件被引入到用户界面中。比如,日期选择器、文件选择器、网格控件等,它们提供了更灵活和高级的数据输入和呈现功能。


三、控件属性概览

在 Qt 中, 使用 QWidget 类表示 “控件”. 像按钮, 视图, 输⼊框, 滚动条等具体的控件类, 都是继承⾃
QWidget.

在Qt 设计界面中,选中一个控件拖拽至界面中,右侧可以看到QWidget中的属性。

这些属性既可以通过 QtDesigner 会直接修改, 也可以通过代码的方式修改.

在这里插入图片描述

1. QWidget属性及作用

属性作用
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 如何获取到焦点.
contextMenuPolicy上下文菜单的显示策略.
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布局方向.
autoFillBackground是否自动填充背景颜色.
windowFilePath能够把 widget 和⼀个本地文件路径关联起来. PS: 其实作用不大.
accessibleName设置 widget 的可访问名称. 这个名称可以被辅助技术 (像屏幕阅读器) 获取到.
accessibleDescription设置 widget 的详细描述. 作用同 accessibleName
inputMethodHints针对输⼊框有效, 用来提示用户当前能输⼊的合法数据的格式. 比如只能输⼊数字, 只能输⼊⽇期等

在这里插入图片描述

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

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

相关文章

第6章 6.1.1 文本格式化 sprintf函数(MATLAB入门课程)

sprintf函数源自 C 语言标准库中的同名函数,这个函数在 C 语言中用于创建格式化的字符串,且使用频率非常高。作为一门高级编程语言,MATLAB借鉴了 C 语言和其他编程语言中的许多特性和命名惯例。在MATLAB中,sprintf函数主要有两种用…

企业如何设计和实施有效的网络安全演练?

现实世界中,武装部队一直利用兵棋推演进行实战化训练,为潜在的军事冲突做准备。随着当今的数字化转型,同样的概念正在以网络安全演习的形式在组织中得到应用,很多企业每年都会基于合理的网络攻击场景和事件响应做一些测试和模拟。…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

Android获取连接到手机热点上的设备信息

主题&#xff1a;在手机开启热点网络的情况下&#xff0c;想要获取是哪个设备已经连接上了当前开启的热点。 实现思路&#xff1a;Android通过读取 /proc/net/arp 文件可以得到连接当前热点的设备信息&#xff0c;包括Mac地址、IP地址等信息。 一. 方法逻辑&#xff1a; /*** …

权限管理系统【BUG】

1.1.简介 忙里偷闲&#xff0c;学点Java知识。越发觉得世界语言千千万&#xff0c;最核心的还是思想&#xff0c;一味死记硬背只会让人觉得很死板不灵活&#xff0c;嗯~要灵活~ 1.2.问题 permission.js:37 [Vue warn]: Error in render: "TypeError: Cannot read prope…

Django--admin 后台管理站点

Django最大的优点之一&#xff0c;就是体贴的提供了一个基于项目model创建的一个后台管理站点admin。这个界面只给站点管理员使用&#xff0c;并不对大众开放。虽然admin的界面可能不是那么美观&#xff0c;功能不是那么强大&#xff0c;内容不一定符合你的要求&#xff0c;但是…

【Spring】SpringBoot整合ShardingSphere并实现多线程分批插入10000条数据(进行分库分表操作)。

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 一、ShardingSphere简介 ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar&#xff08;计划中&#xff09;这3款相互独立的产品组成…

hadoop在linux上启动成功了,但是浏览器访问不了

根据网上的资料进行安装hadoop的伪集群 都安装成功&#xff0c;并且启动也成功了&#xff0c;如下图所示&#xff1a; 2、但是在浏览器上确是怎么也访问不了&#xff0c; 解决思路&#xff0c; 2.1、根据网上的一些文章处理解决是关闭防火墙&#xff0c; 2.1.1、我根据操作步骤…

Redis系列之主从复制集群搭建

在上一篇博客&#xff0c;我们已经知道怎么搭建一个redis单机版&#xff0c;这篇博客基于之前的基础&#xff0c;来搭建一个redis主从同步&#xff0c;本博客框架是一主二从&#xff0c;一个主节点&#xff0c;其它两个从节点 实验环境 CentOS7Xshell6XFtp6Redis6.2.2 主从关…

四、书城开发--3、书城图书部分的开发

书城图书部分 首先我们做书城首页搜索栏下面的图片展示 我们在书城首页组件中通过home请求方法中获取回来的数据中&#xff0c;打印出来可以看到那个banner就是我们现在要的图片 我们在data中定义一个变量banner用来存放获取回来的数据中的banner 然后把它展示出来就可以了&a…

JVM_垃圾收集器

GC垃圾收集器 文章目录 GC垃圾收集器GC垃圾回收算法和垃圾收集器关系GC算法主要有以下几种四种主要的垃圾收集器SerialParallelCMSG1垃圾收集器总结查看默认垃圾收集器 默认垃圾收集器有哪些各垃圾收集器的使用范围部分参数说明 新生代下的垃圾收集器并行GC(ParNew)并行回收GC&…

25.11 MySQL 视图

1. 常见的数据库对象 对象描述表(TABLE)存储数据的逻辑单元, 以行和列的形式存在, 列就是字段, 行就是记录.数据字典系统表, 存放数据库相关信息的表. 数据通常由数据库系统维护, 程序员通常不可修改, 只可查看.约束(CONSTRAINT)执行数据校验的规则, 用于保证数据完整性的规则…

基于单片机体温心率检测仪系统设计

**单片机设计介绍&#xff0c; 基于单片机体温心率检测仪系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机体温心率检测仪系统设计是一个综合性的项目&#xff0c;旨在通过单片机及其外围电路实现对人体体温和心…

850. Dijkstra求最短路 II

850. Dijkstra求最短路 II 代码&#xff1a; #include<algorithm> #include<iostream> #include<cstring> #include<queue> #include<cmath>using namespace std; //用pair存储编号和距离 typedef pair<int,int> PII;int n,m; const int …

HarmonyOS 应用开发-ArkUI(ets)仿“腾讯新闻”APP

一、效果演示 1、新闻列表页 2、新闻详情页、图片展示页 3、视频页 4、动态页 二、 流程图 –本来自定义了视频的控制栏的&#xff0c;但是发现VideoController()控制器的bug会导致控制器失效&#xff0c;所以没继续做。视频页先不搞了。 三、文件组织&#xff08;“我的页面…

openharmony launcher 调研笔记(03)UI 数据装配

最近在看launcher&#xff0c;把自己调研的点做个笔记&#xff0c;持续修改更新中&#xff0c;个人笔记酌情参考。 桌面上半部分包含父子逻辑&#xff1a; Column() { PageDesktopLayout(); } PageDesktopLayout->GridSwiper->Swiper->SwiperPage 1.PageDe…

jmeter压测websocket协议

一、jmeter 安装websocket插件 1、选项--插件管理 2、搜索WebSocket Samplers by Peter Doornbosch插件 进行安装 3、 重启 jmeter 二、jmeter压测websocket协议实战 2.1、以网站为例&#xff1a; websocket在线测试 1、断开连接 2、打开F12&#xff0c;查看WS数据 3、…

Microsoft Visio 参与者 [actor] - 人的形状图标

Microsoft Visio 参与者 [actor] - 人的形状图标 1. 更多形状 -> 搜索形状2. 参与者References 1. 更多形状 -> 搜索形状 2. 参与者 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】

LeetCode-139. 单词拆分【字典树 记忆化搜索 数组 哈希表 字符串 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;Python动态规划五部曲&#xff1a;定推初遍举【先遍历背包 后遍历物品】必须是排列解题思路二&#xff1a;Python动态规划版本二解题思路三&#xff1a;回…

电脑打开游戏的时候提示缺少.dll文件?照着这个来就行。

前言 小白曾经也是一个很喜欢玩游戏的人&#xff0c;但那只是曾经。那时候宿舍里一共6个人&#xff0c;都是比较喜欢玩游戏的小伙子。 话题好像偏了…… 有些小伙伴下载玩游戏之后&#xff0c;高高兴兴地想要开始玩。结果游戏根本没办法运行&#xff0c;可恶&#xff01;这该…