【Qt知识】Qt窗口坐标系

Qt的窗口坐标体系遵循标准的计算机图形坐标系统规则

Qt窗口坐标体系特点

  1. 坐标原点:窗口坐标体系的原点位于窗口的左上角,即坐标(0, 0)位置。

  2. 轴方向

    • X轴:向右为正方向,随着X坐标值的增加,元素在窗口中从左向右移动。
    • Y轴:向下为正方向,随着Y坐标值的增加,元素在窗口中从上向下移动。
  3. 嵌套窗口:对于嵌套的窗口或控件,其坐标是相对于其直接父窗口的左上角计算的。这意味着子窗口或控件的位置描述是局部坐标,需要结合父窗口的位置才能映射到全局坐标体系中。

  4. 事件坐标:在处理鼠标或其他输入事件时,Qt提供的事件对象(如QMouseEvent)通常包含的坐标是相对于接收事件的窗口或控件的。若要获取相对于屏幕的绝对坐标,可以使用如QMouseEvent::globalPos()这样的方法。

  5. 坐标转换:在绘图或处理复杂布局时,可能需要在逻辑坐标系、窗口坐标系和设备坐标系之间转换。QPainter提供了如setWindowsetViewPort等方法来帮助进行坐标变换,使得绘图可以在不同的坐标体系中进行。

  6. 布局管理:虽然不是直接的坐标体系特性,但Qt的布局管理系统(如QLayout)可以自动管理控件的位置和大小,以适应窗口大小的变化,这间接影响了控件在窗口坐标系中的布局。

        注意:在Qt中,一个控件的坐标通常是相对于其父控件的。这意味着当指定一个控件的位置时(比如通过move(int x, int y)方法),给出的坐标(x, y)是指相对于该控件父控件左上角的水平和垂直偏移量。这种设计允许用户界面元素在嵌套布局中灵活定位,同时简化了坐标系统的管理,因为每个控件只需关心相对于直接容器的位置即可。

        当我们用代码直接创建一个pushbutton,会发现其在右上角。

//widget.cpp#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);QPushButton* button = new QPushButton(this);button->setText("button");
}Widget::~Widget()
{delete ui;
}

当我们添加这样一行代码后

    button->move(114,514);//单位:像素

 运行后会发现,按钮坐标发生偏移。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv-python(二)

马赛克 img cv2.imread(./bao.jpeg)print(img.shape)img2 cv2.resize(img,(35,23))img3 cv2.resize(img2,(900,666))cv2.imshow(bao,img3)cv2.waitKey(0)cv2.destroyAllWindows()img2 cv2.resize(img, (90,66))img3 np.repeat(img2, 10, axis 0) # 重复行img4 np.repeat(…

数据结构---时间复杂度与空间复杂度

文章目录 1. 知识背景2. 什么是时间复杂度&#xff1f;3. 空间复杂度4 .大O渐进表示法&#xff1a;对于一些算法的时间复杂度存在最好&#xff0c;最坏&#xff0c;平均的情况&#xff1a; 5. 常见的时间复杂度举例总结&#xff1a;6. 空间复杂度的举例与总结&#xff1a;总结&…

腾讯 InstantMesh,单图生成 3D 模型,10 秒内完成,性能超越 SOTA

前言 近年来&#xff0c;3D 内容创作在游戏、动画、虚拟现实等领域发挥着越来越重要的作用。然而&#xff0c;传统的 3D 模型制作流程繁琐&#xff0c;需要专业人员花费大量时间和精力。为了简化 3D 内容创作流程&#xff0c;腾讯 ARC 实验室推出了 InstantMesh&#xff0c;一…

开源代码分享(32)-基于改进多目标灰狼算法的冷热电联供型微电网运行优化

参考文献&#xff1a; [1]戚艳,尚学军,聂靖宇,等.基于改进多目标灰狼算法的冷热电联供型微电网运行优化[J].电测与仪表,2022,59(06):12-1952.DOI:10.19753/j.issn1001-1390.2022.06.002. 1.问题背景 针对冷热电联供型微电网运行调度的优化问题&#xff0c;为实现节能减排的目…

prometheus-alert使用

说明&#xff1a;本文介绍一款可接管alertmanager报警&#xff0c;简化alertmanager配置的组件prometheus-alert。可以将prometheus检测到的异常指标&#xff0c;通过alertmanager转给prometheus-alert&#xff0c;由prometheus-alert通知到各个应用。 如下&#xff1a; 上图来…

# linux 系统下,使用 docker 启动 mysql 后,通过 sqlyog 连接 mysql 报“错误号码2058“

linux 系统下&#xff0c;使用 docker 启动 mysql 后&#xff0c;通过 sqlyog 连接 mysql 报“错误号码2058“ 一、错误描述&#xff1a; 在 ubuntu 系统上&#xff0c;刚安装的 docker 启动 mysql 后&#xff0c;想通过图形界面 SQLyong 等工具连接 mysql 出现“错误号码2058…

LeetCode---字符串

344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 代码示例&#xff1a; //时间复杂度: O(n) //空间…

经典获奖案例 | 度小满互联网金融开源软件治理解决方案

近日&#xff0c;广东省粤港澳合作促进会金融专业委员会和粤港澳大湾区金融创新研究院在广州联合举办“2024年粤港澳大湾区数智金融峰会暨第二届金融创新优秀应用案例与解决方案技术成果授牌仪式”。《度小满互联网金融开源软件治理解决方案》从数百个申报项目中脱颖而出&#…

C语言多线程编程:并发控制与同步机制

1. 引言 在多核处理器日益普及的今天&#xff0c;多线程编程已经成为提高程序性能的重要手段。C语言作为一种高效、底层的编程语言&#xff0c;自然也支持多线程编程。本文将带你深入了解C语言多线程编程的奥秘&#xff0c;并分享一些实用的编程技巧。 2. 线程基础 2.1 线程的…

解决VIvado编程中遇到的bug 5

解决VIvado编程中遇到的bug 5 语言 &#xff1a;Verilg HDL EDA工具&#xff1a; Vivado、quartus2 、modelsim 解决VIvado编程中遇到的bug 5一、引言二、问题、分析及解决方法1. vivado编译时报错&#xff08;1&#xff09;错误&#xff08;2&#xff09;分析&#xff08;3&am…

YOLOv8 多种任务网络结构详细解析 | 目标检测、实例分割、人体关键点检测、图像分类

前言 本文仅根据模型的预测过程&#xff0c;即从输入图像到输出结果&#xff08;图像预处理、模型推理、后处理&#xff09;&#xff0c;来展现不同任务下的网络结构&#xff0c;OBB 任务暂不包含。 Backbone 1. yolov8m 2. yolov8m-p2 3. yolov8m-p6 4. 细节 图中 CBS Con…

DALL·E 2详解:人工智能如何将您的想象力变为现实!

引言 DALLE 2是一个基于人工智能的图像生成模型&#xff0c;它通过理解自然语言描述来生成匹配这些描述的图像。这一模型的核心在于其创新的两阶段工作流程&#xff0c;首先是将文本描述转换为图像表示&#xff0c;然后是基于这个表示生成具体的图像。 下面详细介绍DALL-E2的功…

Java高级---Spring Boot---3快速入门

3 Spring Boot快速入门 3.1 创建第一个Spring Boot项目 使用IntelliJ IDEA和Spring Initializr创建项目 打开IntelliJ IDEA 并选择 “Start a new project”。在新建项目向导中&#xff0c;选择 “Spring Initializr”。填写项目基本信息&#xff1a; Group: 定义项目组&…

C#使用GDI对一个矩形进行任意角度旋转

C#对一个矩形进行旋转GDI绘图&#xff0c;可以指定任意角度进行旋转 我们可以认为一张图片Image&#xff0c;本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中&#xff0c; 矩形旋转的两个关键方法 //设置旋转的中心点 public v…

生成随机图片

package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…

FPGA定点数FFT过后转换为浮点数与Matlab计算的FFT结果进行比对

目录 1.前言2.FPGA的testbench中如何读取数据文件3.FPGA的testbench中如何将输出数据存储在文件中4.Matlab去读取testbench存储的文件数据4.1纯数字不带编码4.2 带编码的数据&#xff0c;如定点数 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 前面一篇文章讲了&…

ESP32-C3模组上实现蓝牙BLE配网功能(2)

接前一篇文章&#xff1a;ESP32-C3模组上实现蓝牙BLE配网功能&#xff08;1&#xff09; 本文内容参考&#xff1a; 《ESP32-C3 物联网工程开发实战》 乐鑫科技 蓝牙的名字由来是怎样的&#xff1f;为什么不叫它“白牙”&#xff1f; 特此致谢&#xff01; 一、蓝牙知识基础…

[数据集][目标检测]吉他检测数据集VOC+YOLO格式66张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;66 标注数量(xml文件个数)&#xff1a;66 标注数量(txt文件个数)&#xff1a;66 标注类别数…

Three.js——tween动画、光线投射拾取、加载.obj/.mtl外部文件、使用相机控制器

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

YOLOv8 segment介绍

1.YOLOv8图像分割支持的数据格式&#xff1a; (1).用于训练YOLOv8分割模型的数据集标签格式如下: 1).每幅图像对应一个文本文件&#xff1a;数据集中的每幅图像都有一个与图像文件同名的对应文本文件&#xff0c;扩展名为".txt"; 2).文本文件中每个目标(object)占一行…