Qt常用控件之QWidget(一)
🌟🌟hello,各位读者大大们你们好呀🌟🌟
🚀🚀系列专栏:【Qt的学习】
📝📝本篇内容:QWidget;enabled属性;geometry
⬆⬆⬆⬆上一篇:Qt的信号与槽(三)
💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-
1.QWidget
在我们学习常用控件时,第一个要关注的肯定是QWidget,因为QWidget是很多控件的父类,它在图形化界面中就是一个窗口,我们可以点击它来查看它的属性
上图展示了大部分属性的一个解释,可以先做一个简单的了解,只看文字肯定不能做到完全理解。
2.enabled属性
这个是讲的第一个属性,也是比较简单,它的功能是
描述一个控件是否是可用状态
,那么它相对地概念就是禁用
并且这个“禁⽤” 指的是该控件不能接收任何⽤⼾的输⼊事件, 并且外观上往往是灰⾊的,如果⼀个 widget 被禁⽤, 则该 widget 的⼦元素也被禁⽤
enabled有两个可用的函数
函数声明 | 函数功能 |
---|---|
isEnabled() | 获取控件的状态 |
setEnabled(bool false) | 设置控件的状态,true为可用,false为禁用 |
我们可以通化这个两个函数来实现一个功能:通过一个按钮来控制另一个按钮的可用状态
我们可以观察到我们两个按钮的objectName是不一样的,是以控件类型+下划线+编号的规律来的,前面也讲过,控件的objectName是必须不一样的,后续我们就可以通过ui指针来进行指向objectName,指向想要的对象。我们可以进行重命名,将“切换按钮状态”的按钮的objectName改成pushButton_switch,更加有可读性。
我们也通过打调试信息的方式来测试了“按钮”的功能,也可以发现,我们的按钮一旦禁用,就会变成灰色
2.geometry
接下来要讲的一个属性是geometry,但是我们要首先关注的是它的一个发音和中文释义以及它的拼写
它的中文意思是几何的意思,在Qt中表示的是位置和尺寸的统称,即x,y,width,height,分别对应的是:横坐标,纵坐标,宽度,高度。如图所示是各个属性表示的内容
在前面也讲过我们计算机中的坐标系是左手坐标系,其坐标系的原点是当前元素的⽗元素的左上⻆。
我们在实际的开发中,并不会直接使用这几个属性,而是通过封装的形式来获取和修改,就如同这里的geometry
接下来我们介绍一下关于geometry这个属性的相关函数
函数声明 函数功能 | |
---|---|
const QRect& geometry() const | 获取控件的位置和尺寸,返回值是一个QRect类型的,是“矩形”英文的缩写,它包含了前面提到的四个属性 |
void setGeometry(const QRect &) | 设置控件的位置和尺寸,以QRect这个类型为整体进行设置 |
void setGeometry(int x, int y, int w, int h) | 设置控件的位置和尺寸,以四个单独的属性进行设置 |
接下来我们写代码演示,功能是:通过四个按钮来控制一个按钮的四个方向移动
设置了四个按钮,并且分别对其objectName重新命名
move的功能是单纯的修改位置,但是geometry既可以修改位置还可以修改尺寸,并且我们在代码中使用了qDebug()宏来打印位置尺寸信息,这些数字的单位都是像素,qDebug()能够自动识别并打印出QRect类型的内容。但是有一个问题,为什么我们修改了它的坐标轴,它的尺寸也会发生改变?有没有什么办法让按钮单纯的移动位置呢?
我们仔细观察就能发现,它其实是一直在调整左上角的位置,但是也同时调整了宽度和高度,我们的代码修改的是QRect的x和y(矩形会不断的变化),如果想要达到按钮平移就需要用到我们之前讲的第二个函数,不再修改QRect,而是基于QRect的数据通过setGeometry进行挨个设置。
🌸🌸Qt常用控件之QWidget(一)大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪