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代码示例: 控制按钮的位置

效果如下,不符合预期
①
成员函数(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 中的事件机制)
以下实现的是鼠标按下的时候触发~~