qt常用控件--02
文章目录
- qt常用控件--02
- toolTip属性
- focusPolicy属性
- styleSheet属性
- 补充知识点
- 按钮类控件
- QPushButton
- 结语
很高兴和大家见面,给生活加点impetus!!开启今天的编程之路!!
今天我们进一步c++11中常见的新增表达
作者:٩( ‘ω’ )و260
我的专栏:qt,Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!
qt常用控件–02
toolTip属性
api接口:
toolTip一般是给用户看的,所以一般不会使用到获取这个toolTip,如果非要获取的话,删掉set即可
我们直接来来看代码:
再来看效果:
focusPolicy属性
在讲解这个游戏之前,请问有多少同学是玩过部落冲突这个游戏的,当我们需要去攻打敌方部落的某个建筑的时候,此时我们需要点击这个建筑,我们的小兵就会去攻打这个建筑,这里过程可以理解为获取控件的焦点
api接口:
这个属性是来设置控件获取焦点的方式~~
至于为什么需要获取到焦点呢?
因为控件必须先要获取到焦点,用户才能够对控件进行操作
这里我们就需要来谈一下focusPolicy这个类了,focusPolicy仍然是qt中内置的类,其中包含:
我们直接来写一个代码来演示:
我们这里来创建一个用户可以进行输入的对话框:
因为默认的枚举类型就是strongFocus,默认鼠标和制表符都可以来修改焦点。这点,我们可以在qt designer中的控件属性中能够看到~~
如果此时我们对代码稍加修改,就可以对控件获取焦点的策略做出一定改变
styleSheet属性
通过ccs来控制控件样式,这里的样式包括颜色,字体,大小等等,ccs是属于前端技术的一种,主要是用来描述控件的样式。
主要接口即:setsStyleSheet()
设置控件的样式其实还有一种图形化界面的方式,主要是使用控件的编辑样式表
步骤:qt designer右击控件 ->找到改变样式表->使用键值对的方式修改控件样式
描述控件的方式:键与值之间使用 :(英文下的冒号)链接,键值对之间使用 ;(英文状态下的分号链接)
关于如何形容字体(因为这里是Label),在前面已经有讲解了,忘记了记得复习~~
接下俩我们使用代码的方式来描写这个,我们现将这个编辑样式表复原。
来看代码:
结果仍然适合上面的结果一样的:
补充知识点
我们来使用一个示例来讲解,我们来实现一个夜间模式的切换,来看代码:
来看实现的结果:
我们发现:日间模式跟我们初始的颜色不一样,我们日间模式是纯白色,但是最初颜色是白里透灰,这个涉及计算机中的颜色表示~~
首先,计算机中的颜色有多少种?答案是无数种
计算机中的三原色:红,绿,蓝,所以计算机中使用RGB来表示颜色(光的三原色)
我们可以使用这种表示方式来表示任何颜色,按照不同的比例,可以制造不同的颜色,所以计算机中的颜色有无数种。
首先,计算机中我们使用一个字节来表示光的三原色中的一种,范围是0~255,所以就有两种方式来表示一种颜色:
第一种:rgb(a,b,c)(a,b,c均是范围内的数字),来表示三种颜色的不同比例,如rgb(0,0,0)(黑色)
第二种:十六进制表示(大于0,小于FF),4个比特位表示一个16进制位,如:000000(黑色,也可以写为000),FF00FF
那么最后一个问题来了,怎么去获取这个颜色的比例呢?
使用取色器,在qq截图中内置了取色器,快捷键是ctrl+alt+a,随后鼠标对准想要的颜色,这样可以看到对应的rgb比例:
当我们清楚知道了初始界面的比例之后,就能够修改夜间模式的白色了:
按钮类控件
QPushButton
继承关系如下:
我们在控件的属性中也能够看到这一个继承关系:
因为继承关系,前面我们所提到的QWidget的属性QPushButton也能够使用~~
接下来我们其实介绍的是QAbstractButton的属性:
接下来我们可以使用一个实例来练习上面的接口~~
我们实现上下左右的移动(这次我们加上图片和快捷键的方式)
1:给按钮添加图片
我们仍然是在阿里巴巴矢量图标库中寻找图片
这里我们使用的还是qrc机制:先添加一个前缀,随后添加图片文件,路径不要有中文,注意图片在同级路径或者下一次路径中
随后我们设置Icon设置图片:
2:给按钮添加快捷键
我们先给按钮设置对应的槽函数,这个也十分简单:
随后我们可以测试一下,我们发现此时使用鼠标点击可以上下移动,但是只能够点一次,移动一次,所以我们需要用到上面的接口:
我们在Widget构造函数添加上这个并设置为true:
此时我们如果使用鼠标一直点击,即一直压下,target会一直移动。即连发属性。
接下来我们设置快捷键的方式,我们使用setShortCut接口:
这里我们也有两种方式来确定快捷键:
1:直接拼写英文:
如果我们想使用多个快捷键来处理一个操作呢?我们在其中加上一个+号即可:
但是这种其实有种问题,如果我们拼错了呢?而且还没有任何的报错
所以我们就要用到第二种方式,我们来使用qt库中定义的宏来实现。
2:使用qt内置宏:
如果想要使用多个按键处理同一个操作,同理,还是要使用+号,
形如:
随后我们发现里面使用快捷键是默认就是连发的,即setAutoRepeate默认就是true的~~
结语
今天的内容就分享完了,不足之处欢迎大家留言指出,感谢大家支持
锲而不舍,金石可镂!!加油!!