当前位置: 首页 > news >正文

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 中的事件机制)

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

相关文章:

  • OpenCV 图形API(18)用于执行两个矩阵(或数组)的逐元素减法操作函数sub()
  • 机器学习——ROC曲线、PR曲线
  • 剖析AI与5G:是夸大其词,还是时代变革的引擎?-优雅草卓伊凡
  • Hook javascipt 获取的时间 -- xyctf 2025 ez_puzzle wp
  • Vue3 Composition API 深度开发指南
  • ECharts配置优化
  • 信息学奥赛一本通 1861:【10NOIP提高组】关押罪犯 | 洛谷 P1525 [NOIP 2010 提高组] 关押罪犯
  • 软考系统架构设计师之大数据与人工智能笔记
  • [ctfshow web入门] web17
  • 力扣HOT100之链表:19. 删除链表的倒数第 N 个结点
  • 【MySQL 数据库】数据表的操作
  • 永磁同步电机无速度算法--基于HOPLL的滑模观测器
  • Python设计模式:组合模式
  • JavaScript基础--22-call、apply 和 bind
  • PPP实验笔记
  • C#语言的饼图
  • java.io快读快写StreamTokenizer、PrintWriter
  • 低级错误 System.setProperty 值为空时引发空指针
  • ubuntu,react的学习(1)
  • PandaAI:一个基于AI的对话式数据分析工具
  • 网站备案是先做网站还是做完了备案/seo视频
  • 做网站一般费用多少/nba最新消息新闻
  • 湛江网站制作/百度问一问免费咨询
  • 做模具的都有什么网站/百度2022第三季度财报
  • 网站审核要多久/seo优化基础教程pdf
  • wordpress开头空两格/网站优化外包多少钱