欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 39常用控件_QWidget的geometry属性

39常用控件_QWidget的geometry属性

2025/9/21 17:45:57 来源:https://blog.csdn.net/m0_73673820/article/details/147028712  浏览:    关键词:39常用控件_QWidget的geometry属性

目录

1geometry 

2几何.

2.1可以把这个东西视为是四个属性的统称x横坐标, y纵坐标, width宽度, height⾼度当前控件的 位置(左上角的位置) 和 尺寸~~

2.2代码示例: 控制按钮的位置

2.3代码示例:一个表白程序1)往界面上拖拽两个按钮和一个 Label.Label的objectName为 pushButton_accept 和 pushButton_reject ,label的objectName为 label控件中文本如下图所示


1geometry 


①计算机中有时候会涉及到一些 拗口的单词,大家一定要会拼写,会发音!!
一旦你和面试官不在一个频道上,就算你口吐莲花~~ 面试官看起来都会觉得,这个小伙
有些难以沟通~~
queue 队列~~ 读作 Q
queen 女王
②Linux
1.里纽克斯
2.李娜克斯
3.李ne克斯
4.李ni克斯
像 Linux 这种单词术语,属于本身就有很多种常见读法的情况
咱们的原则是,你的面试官/领导怎么读,你就怎么读,不要去纠正人家~~

③Qt 正确读音: cute 可爱的~~
但是实际上 大家都是读作 Q T

2几何.


2.1可以把这个东西视为是四个属性的统称
x横坐标, y纵坐标, width宽度, height⾼度
当前控件的 位置(左上角的位置) 和 尺寸~~

①但是实际开发中,我们并不会直接使用这几个属性,而是通过一系列封装的方法来获取/修改
对于 Ot 的坐标系,不要忘记是一个“左手坐标系其中坐标系的原点是当前元素的父元素的左上角.

 

②Qt 中针对一些几何上的概念也进行了封装~~
QPoint 表示一个点
QRect 表示一个矩形
以上两个类属于是小对象,里面的属性非常少,占用空间也小
C++ 中使用上述对象,通常就会按照值的方式来传递参数了

③move 只是修改位置
setGeometny 既可以修改位置, 又可以修改尺寸~~

修改这些属性的时候,一定要先确认好你当前选中的
是哪个控件~~

2.2代码示例: 控制按钮的位置

1) 在界⾯中拖五个按钮.
五个按钮的 objectName 分别为 pushButton_target , pushButton_up ,
pushButton_down , pushButton_left , pushButton_right
五个按钮的初始位置和大小都随意.
期望通过点击这几个按钮,就能够修改 target 按钮的 geometry

 

 效果如下,不符合预期

成员函数(member function)
方法(method)
这俩东西概念上是等价的~~ 

单位都是像素.

③ 当前代码实际执行的效果,是在调整左上角位置.左上角位置改变的同时,高度和宽度也同时发生了改变~~
如果想要让这个按钮能够平移.(宽度高度不变,整个按钮的位置都发生改变)
rect.setY(rect.y() - 5);
刚才的代码,修改的是 QRect 对象的 x 和y。这样的修改就会使 QRect 宽度高度发生改变~~
如何才能实现“平移”的效果,保持尺寸不变,整个按钮位置变化?
不再修改 QRect,而是通过 QRect 基于 setGeometry 第二个版本的函数重新设置位置即可.

 

 上述代码使⽤ move ⽅法也是可以的.

2.3代码示例:一个表白程序
1)往界面上拖拽两个按钮和一个 Label.
Label的objectName为 pushButton_accept 和 pushButton_reject ,label的
objectName为 label
控件中文本如下图所示
​​​​​​​

int x = rand() % width;
rand() 是 C标准库中的函数
能够生成一个随机的整数.这个数字范围很大~~
上述代码就类似于之前写猜数字,要生成一个 1-100 之间的整数
rand() % 100 + 1
[0, 99] + 1 => [1, 100]

rand 函数使用之前要设置随机种子~~(如果不设置随机种子,每次随机序列生成的都是一样的数)
C 语言中通过 time 可以获取到 秒级 时间截~~
以1970年1月1日0时0分0秒为基准
计算当前时刻和基准时刻的 秒数 /毫秒数/微秒数.... 之差.

 

 

按钮提供的信号不止有点击
一下一上是点击
做的更绝一点
不再使用 clicked 信号,换成 pressed.鼠标按下的时候触发~~
也可以做到,鼠标不点击,只要挪到按钮上,就会让按钮移动~~
(需要使用到 Qt 中的事件机制)

以下实现的是鼠标按下的时候触发~~

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词