PyQt5-屏幕坐标系的了解和基本使用

Qt中的坐标位置 Qt中的坐标位置 最近看了些代码,被各种pos(), globalpos()之类的差异搞迷糊了,心想来整理一下区别,主要看help,个人理解,不一定对,若有大佬路过,不吝指点,幸甚。 [static] QPoint QCursor::pos() Returns the position of the cursor (hot spot) of the primary screen in global screen coordinates. 返回鼠标在全局坐标位置,即相对于桌面坐标系统 pos : 阅读详情

1 什么是屏幕坐标系?

2 相关概念

  • 屏幕坐标系,即窗口相对于屏幕的坐标。屏幕左上角坐标称为原点坐标(0,0);
  • 窗口的坐标,即窗口的左上角相对原来的坐标,如下图示: 在这里插入图片描述
  • 窗口的宽和高也有两种,一种是工作取的高度,一种菜单栏的高度,比如如下说明: 在这里插入图片描述

3 代码实现

  • 创建一个窗口,在窗口的工作区添加一个按钮:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/4 
# 文件名称:test023_ScreenGeo.py
# 作用:屏幕坐标系
# 联系:VX(NoamaNelson)
# 博客:https://blog.youkuaiyun.com/NoamaNelson

import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QWidget, QPushButton

class ScreenGeo(QMainWindow):
    def __init__(self):
        super(ScreenGeo, self).__init__()
        self.w = QWidget()
        self.b = QPushButton(self.w)
        self.b.setText("按钮")

        self.b.move(20, 30)

        # 窗口尺寸
        self.w.resize(500, 400)
        self.w.move(400, 300)
        # 窗口标题
        self.w.setWindowTitle("屏幕坐标系")
        self.w.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = ScreenGeo()
    # win.show()
    sys.exit(app.exec_())

  • 运行后如下效果: 在这里插入图片描述
  • 在按钮上加一个事件,比如是点击按钮后,显示“这是一个按钮~~”,代码如下:
# -*- coding:utf-8 -*-
# 作者:虫无涯
# 日期:2023/11/4 
# 文件名称:test023_ScreenGeo.py
# 作用:屏幕坐标系
# 联系:VX(NoamaNelson)
# 博客:https://blog.youkuaiyun.com/NoamaNelson

import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QHBoxLayout, QWidget, QPushButton

class ScreenGeo(QMainWindow):
    def __init__(self):
        super(ScreenGeo, self).__init__()
        self.w = QWidget()
        self.b = QPushButton(self.w)
        self.b.setText("按钮")
        self.b.clicked.connect(self.on_click)

        self.b.move(20,
PyQt5基础知识 超详细!!!(含代码) 在哔哩哔哩中看的教程整理的笔记:视频链接https://www.bilibili.com/video/BV1VE411t7kC?p=1 目录 一. 水平布局 二.垂直布局 三.Grid 栅格布局 四.form表单布局 五.组合垂直和水平布局 六.绝对布局 七.分割线与间隙 八.控件尺寸的最大值与最小值 九.尺寸策略(sizePolicy) 一. 水平布局 两种方法: ... 阅读详情

相关推荐

PyQt5基本窗口控件二(QWidget)

QWidget基本介绍 基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。 窗口坐标系统 PyQt使用统一的坐标系统来定位窗口控件的位置和大小,具体如下 以屏幕左上角为原点,也就是(0, 0)点,从左向右为x轴正方向,从上向下为y轴正方向,整个屏幕的坐标系统用来定位顶层窗口。 在窗口内部也有自己的坐标系统,该坐标系统以客户区的左上角...

weixin_43200735的博客 5811

PyQt5实现鼠标移动显示坐标

在PyQt5中,我们可以使用鼠标事件来获取鼠标的位置,并在应用程序中显示坐标信息。这个功能非常有用,特别是在需要与用户交互的图形界面应用程序中。本文将介绍如何使用PyQt5来实现鼠标移动时显示坐标的功能。在上面的代码中,我们创建了一个自定义的QWidget类,并重载。首先,我们需要安装PyQt5库。安装完成后,我们就可以开始编写代码了。

CwFsharp的博客 682

『PyQt5-基本控件』| 16 什么是屏幕坐标系?

屏幕坐标系,即窗口相对于屏幕的坐标。屏幕左上角坐标称为原点坐标(0,0);

虫无涯的博客 395

ESP32C3的I2S接口详解:以驱动PCM5102A为例,避开时序与配置的那些坑

本文深入解析ESP32C3的I2S接口驱动PCM5102A DAC的完整解决方案,涵盖时序对齐、PCB优化和寄存器级配置。通过实际案例分享时钟树分析、信号完整性设计和底层调试技巧,帮助开发者避开常见陷阱,实现高质量音频输出。重点探讨了I2S协议栈、电源滤波优化及DMA传输异常处理等关键技术要点。

weixin_30254435的博客 299

保姆级教程:在Ubuntu 22.04上搞定PX4 V1.14 + ROS2 Humble的HITL仿真(避坑实录)

本文提供在Ubuntu 22.04上配置PX4 V1.14与ROS2 Humble的HITL仿真环境的详细教程,涵盖环境准备、固件编译、QGroundControl配置、ROS2通信设置及联调测试。特别针对版本兼容性、Gazebo插件构建和MicroDDS配置等常见问题提供避坑指南,帮助开发者高效搭建无人机仿真系统。

weixin_30836759的博客 1004

为什么你的ESXI无法识别移动硬盘?一步步教你解决USB存储挂载问题

本文深入解析了ESXi无法识别移动硬盘的根本原因,并提供了从诊断到解决的完整方案。核心在于理解ESXi的USB Arbitrator服务机制,通过检查服务状态、内核设备识别及分区表,逐步定位问题。文章详细指导了如何禁用USB仲裁服务以在主机挂载USB存储,或将其直通给虚拟机,并针对大容量硬盘、USB 3.0兼容性等进阶问题给出了实用建议。

qq_27496129的博客 332

CocosCreator视频播放黑屏?手把手教你封装VideoPlayer组件解决Web环境问题

本文针对Cocos Creator在Web环境下视频播放黑屏等常见问题,提供了一套工程化的VideoPlayer组件封装解决方案。文章深入剖析了浏览器自动播放策略、DOM样式隔离等核心挑战,并手把手教你实现一个健壮的管理器,涵盖兼容性处理、性能优化与内存管理,确保视频播放稳定流畅。

plum99的博客 598

学习笔记--在线强化学习、离线强化学习、连续强化学习的区别(4)

在连续强化学习中,状态和动作都是连续的,这意味着智能体可以采取无限数量的动作,并且状态空间是连续的,而不是离散的点。- 策略评估和模型选择:在离线学习中,如何有效地评估不同策略和模型的性能,是一个重要的研究问题。- 连续学习和迁移学习:在线学习中,学习者需要不断在不同任务和环境中学习,研究者致力于研究如何将之前学到的知识迁移到新任务中,以实现更高效的学习和决策。- 连续动作选择和优化:在连续动作空间中,智能体对动作的选择是无限的,研究者在连续强化学习中通常关注如何有效地选择连续动作,以达到最优决策策略。

hzlalb的博客 3601

RK3588 Buildroot 新建板级DTS

在rk3588 linux开发过程中,新创建板型主要基于硬件差异化、软件适配与优化、项目定制化等多方面需求。

501846585_QQAndroid_java 1298

halcon3d点云补全方法

属于halcon实例中的内容,后面还接了一部分的匹配

Tianwen_running的博客 1231

Unity最强动作战斗框架?Combat System Framework 深度解析

Combat System Framework 并不是一个简单的角色控制器,而是一套完整的动作游戏战斗开发框架。它借鉴了现代 AAA 游戏常见的架构思想,以 Gameplay Tag 为核心,结合 ScriptableObject 数据驱动设计,将技能、属性、Buff、伤害、武器、动画通知等系统有机整合在一起。同时,配套的可视化动画时间轴、Root Motion 工具和实时预览窗口,大幅优化了动作开发流程。当然,这套框架也有一定的学习门槛。

2403_88403568的博客 681

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: PyMySQL操作MySQL数据库
下一篇: 如何使用 Python 多处理模块
Python_P叔
博客等级 码龄3年 5451粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值