【Qt】:常用控件(二:QWidget核心属性)

本文详细介绍了Qt中的cursor光标形状、font字体信息、toolTip提示显示、focusPolicy焦点策略以及styleSheet文本样式,包括如何自定义光标、在图形化界面和代码中操作,以及CSS在Qt中的应用实例。
摘要由CSDN通过智能技术生成

一.cursor(光标形状)

在这里插入图片描述

第一种方式:图形化界面

在这里插入图片描述

第二种方式:代码

在这里插入图片描述

在这里插入图片描述

自定义光标

Qt允许使用自己的图片作为光标,这里需要使用qrc机制,如果不了解的可以看看上一篇博客。

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

在这里插入图片描述

在这里插入图片描述

二.font(字体信息)

在这里插入图片描述

关于QFont:

在这里插入图片描述

代码示例:Qt Designer中设置字体属性

在这里插入图片描述

第一种:在图形化界面操作

在这里插入图片描述

在这里插入图片描述

第二种:纯代码

在这里插入图片描述

在这里插入图片描述

三.toolTip(提示显示)

在这里插入图片描述

toolTip只是给⽤⼾看的.在代码中⼀般不需要获取到toolTip。

代码示例:设置按钮的toolTip

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

四.focusPolicy(焦点)

设置控件获取到焦点的策略.⽐如某个控件能否⽤⿏标选中或者能否通过tab键选中。界面上有一个输入框.此时必须要选中这个输入框,接下来键盘按键才会输入到输入框中.如果选中的是别的控件,或者别的窗口,此时键盘的输入就不会进入到这个输入框中.

在这里插入图片描述

Qt::FocusPolicy 是⼀个枚举类型.取值如下:

Qt::NoFocus :控件不会接收键盘焦点
Qt::TabFocus :控件可以通过Tab键接收焦点
Qt::ClickFocus :控件在⿏标点击时接收焦点
Qt::StrongFocus :控件可以通过Tab键和⿏标点击接收焦点(默认值)
Qt::WheelFocus :类似于 Qt::StrongFocus ,同时控件也通过⿏标滚轮获取到焦点(新增
的选项,⼀般很少使⽤).

代码演示:理解不同的focusPolicy

1.在界⾯上创建四个单⾏输⼊框(Line Edit)

在这里插入图片描述

2.修改四个输⼊框的 focusPolicy 属性为 Qt::StrongFocus (默认取值,⼀般不⽤额外修改)

在这里插入图片描述

此时运⾏程序,可以看到,使⽤⿏标单击/tab,就可以移动光标所在输⼊框.从⽽接下来的输⼊就是针对这个获取焦点的输⼊框展开的了.

3.修改第⼆个输⼊框的 focusPolicy 为 Qt::NoFocus ,则第⼆个输⼊框不会被tab/⿏标左键选中.

在这里插入图片描述

此时这个输⼊框也就⽆法输⼊内容了.

4.修改第⼆个输⼊框 focusPolicy 为 Qt::TabFocus ,则只能通过tab选中,⽆法通过⿏标选中.

在这里插入图片描述

5.修改第⼆个输⼊框 focusPolicy 为 Qt::ClickFocus ,则只能通过鼠标选中,⽆法通过Tab选中.

在这里插入图片描述

五.styleSheet(文本样式)

通过CSS设置widget样式.

CSS(Cascading Style Sheets 层叠样式表)本⾝属于⽹⻚前端技术.主要就是⽤来描述界⾯的样式.所谓"样式",包括不限于⼤⼩,位置,颜⾊,间距,字体,背景,边框等.我们平时看到的丰富多彩的⽹⻚,就都会⽤到⼤量的CSS.Qt虽然是做GUI开发,但实际上和⽹⻚前端有很多异曲同⼯之处.因此Qt也引⼊了对于CSS的⽀持.

CSS中可以设置的样式属性⾮常多.基于这些属性Qt只能⽀持其中⼀部分,称为QSS(Qt Style Sheet).具体的⽀持情况可以参考Qt⽂档中"Qt Style Sheets Reference"章节.

代码⽰例:设置⽂本样式

在这里插入图片描述

在这里插入图片描述

此处的语法格式同CSS,使⽤键值对的⽅式设置样式.其中键和值之间使⽤ : 分割.键值对之间使⽤; 分割.另外,Qt Designer只能对样式的基本格式进⾏校验,不能检测出哪些样式不被Qt⽀持.⽐如 textalign: center 这样的⽂本居中操作,就⽆法⽀持.

在这里插入图片描述

代码⽰例:实现切换夜间模式.

在界⾯上创建⼀个多⾏输⼊框(Text Edit)和两个按钮。objectName 分别为 pushButton_light 和pushButton_dark。

在这里插入图片描述

编写按钮的slot函数.

在这里插入图片描述

在这里插入图片描述

可以看到上面我们都是用white这样确切的表示,实际上它可以自己搭配颜色(通过三原色来搭配)。

关于计算机中的颜⾊表⽰

计算机中使⽤"像素"表⽰屏幕上的⼀个基本单位(也就是⼀个发亮的光点).
每个光点都使⽤三个字节表⽰颜⾊,分别是R(red),G(green),B(blue)⼀个字节表⽰(取值范围0-255,或者0x00-0xFF).
混合三种不同颜⾊的数值⽐例,就能搭配出千千万万的颜⾊出来.
• rgb(255, 0, 0) 或者 #FF0000 或者 #F00 表⽰纯红⾊.
• rgb(0, 255, 0) 或者 #00FF00 或者 #0F0 表⽰纯绿⾊.
• rgb(0, 0, 255) 或者 #0000FF 或者 #00F 表⽰纯蓝⾊.
• rgb(255, 255, 255) 或者 #FFFFFF 或者 #FFF 表⽰纯⽩⾊.
• rgb(0, 0, 0) 或者 #000000 或者 #000 表⽰纯⿊⾊.
当然,上述规则只是针对⼀般的程序⽽⾔是这么设定的.实际的显⽰器,可能有8bit⾊深或者10bit⾊深等,实际情况会更加复杂

在这里插入图片描述

在这里插入图片描述

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸蛋挞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值