首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从QMainWindow geometry()获取错误的位置

从QMainWindow geometry()获取错误的位置是因为geometry()方法返回的是窗口在屏幕上的位置和大小,而不是窗口内容区域的位置和大小。如果想要获取窗口内容区域的位置和大小,应该使用QMainWindow centralWidget()方法获取窗口的中心部件,然后再使用QWidget geometry()方法获取中心部件的位置和大小。

QMainWindow是Qt框架中的一个主窗口类,用于创建具有菜单栏、工具栏、状态栏等功能的应用程序窗口。geometry()方法用于获取窗口在屏幕上的位置和大小,返回一个QRect对象,包含窗口的左上角坐标和宽高信息。

然而,如果想要获取窗口内容区域的位置和大小,应该使用centralWidget()方法获取窗口的中心部件。中心部件是一个QWidget对象,可以包含其他的子部件,例如按钮、文本框等。然后,可以使用geometry()方法获取中心部件的位置和大小,同样返回一个QRect对象。

以下是一个示例代码,展示如何正确获取窗口内容区域的位置和大小:

代码语言:python
复制
from PyQt5.QtWidgets import QMainWindow, QWidget, QApplication
from PyQt5.QtCore import QRect

class MyMainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("My Main Window")
        self.setGeometry(100, 100, 500, 500)

        central_widget = QWidget(self)
        self.setCentralWidget(central_widget)

        central_widget.setGeometry(50, 50, 400, 400)

    def get_content_geometry(self):
        central_widget = self.centralWidget()
        content_geometry = central_widget.geometry()
        return content_geometry

if __name__ == "__main__":
    app = QApplication([])
    window = MyMainWindow()
    window.show()

    content_geometry = window.get_content_geometry()
    print("Content Geometry:", content_geometry)

    app.exec_()

在上述示例中,我们创建了一个自定义的主窗口类MyMainWindow,并设置了窗口的标题和位置。在构造函数中,我们创建了一个中心部件central_widget,并将其设置为主窗口的中心部件。然后,我们通过get_content_geometry()方法获取中心部件的位置和大小,并打印输出。

注意,这里的位置和大小是相对于窗口的内容区域而言的,而不是相对于屏幕。如果需要获取相对于屏幕的位置和大小,可以使用QWidget的mapToGlobal()方法将内容区域的位置转换为屏幕坐标。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL中地理位置数据扩展geometry使用心得

Geometry主要相关类 2.1 Geometry   Geometry是所有此扩展中类型得基类,其他类型如Point,LineString,Polygon都是Geometry子类。...几何对象创建函数   MySQL表中几何对象有它自己内部格式,我们需要将几何对象方便输入WKT格式转换为其内部格式,才能进行进一步存储,计算等。   ...常用函数 6.1 获取几何对象属性函数   6.1.1 Geometry     -->Dimension(g)       返回对象g维数     -->Envelope(g)       返回对象...(poly)       返回对象polyneihuan个数 6.2 现成几何对象创建新对象 6.2.1 st_union(g1, g2)   将g1和g2合并为一个集合类对象 SET @g1...空间索引 对表中geometry类型字段进行索引可以优化搜索,MySQL中通过对Geometry对象MBR创建索引 创建: CREATE SPATIAL INDEX i_shape ON `t_geo_test

2.7K10

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

4.1 直接获取这个表示窗口左上角计算;以下是 窗口横纵坐标 和 工作区宽高# -*- coding:utf-8 -*-# 作者:虫无涯# 日期:2023/11/4 # 文件名称:test023...QApplication(sys.argv) win = ScreenGeo() # win.show() sys.exit(app.exec_())效果如下:图片4.2 通过坐标系获取这个表示工作区左上角计算...("通过坐标系获取坐标") print(f"工作区横坐标:{self.w.geometry().x()}") print(f"工作区纵坐标:{self.w.geometry(...Frame坐标这个表示整个窗口和菜单高度;以下是获取窗口横纵坐标 以及 窗口宽高;# -*- coding:utf-8 -*-# 作者:虫无涯# 日期:2023/11/4 # 文件名称:test023...("通过坐标系获取坐标") print(f"工作区横坐标:{self.w.geometry().x()}") print(f"工作区纵坐标:{self.w.geometry(

28030

获取图片位置(距离最顶部)

老规矩,先说需求: 需求是想要获取到图片位置,然后根据图片位置添加一个按钮 点击这个按钮 获取图片信息 正常来讲 这样需求 先获取dom 再遍历dom 往里面塞按钮就可以了 但是,考虑到各型各色网站限制和...dom变化,这样就有很多问题, 所以就需要根据图片的当前位置(元素距离顶部位置(包括滚动条),和左边位置)来动态添加这个按钮 因为是hover触发 所以这个按钮只有一个 (这样做法是参考阿里以图搜图功能做...) ok 需求明白了之后 开始说怎么做 先说公式代码:( top: 图片距离顶部高度+滚动条高度,left:图片距离左侧高度) 1.滚动条高度     // 获取 当前 滚动条长度, 水平 ...:(主要方法:dom.getBoundingClientRect)       // 获取 dom 到视口左侧和顶部相对位置       function getDomToViewPosition(id...进行定位吧 举例看下面这张图: 图片 这张例图距离left为:20 距离上为:266.515625 当前滚动条高度为:4683 按照我们公式 我们动态添加按钮位置应该是: top:4683

2K10

Android6.0获取GPS定位和获取位置权限和位置信息方法

(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent, PRIVATE_CODE); } } /** * 获取具体位置经纬度...more details. return; } Location location = locationManager.getLastKnownLocation(provider); // 通过GPS获取位置...updateLocation(location); } /** * 获取到当前位置经纬度 * @param location */ private void updateLocation(Location...6.0权限,返回时回调,我这里需求是获取权限之后获取到当前位置经纬度详细信息 3.下面是当点击获取GPS定位,跳转到系统开关,ActivityResult回调,我这里做是必须要开启GPS权限,没有开启会一直让用户开启权限...基础知识写不好,大佬勿喷,谢谢! 以上这篇Android6.0获取GPS定位和获取位置权限和位置信息方法就是小编分享给大家全部内容了,希望能给大家一个参考。

2.5K20

Android获取位置信息方法

本文实例为大家分享了Android获取位置信息具体代码,供大家参考,具体内容如下 1.位置服务简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置服务...3.接下来将讲述一个如何实现获取位置经纬度,并且如果位置改变,如何通过位置改变,经纬度也发生变化例子,这里以LocationManager对象为例: (1).首先,第一步,获取LocationManager...类静态常量为:NETWORK_PROVIDER,这两个静态常量在获取当前位置时要用到。)...();//获取纬度 double lng = location.getLongitude();//获取经度 (4).在很多提供定位服务应用程序中,不仅需要获取当前位置信息,还需要监视位置变化,在位置改变时调用特定处理方法...,onStatusChanged()这个方法在定位功能硬件状态改变时被调用,例如,从不可获取位置信息状态到可以获取位置信息状态,反之亦然 。

4.6K30

用Javascript获取页面元素位置

二、获取网页大小 网页上每个元素,都有clientHeight和clientWidth属性。...document.documentElement.scrollHeight,                 document.documentElement.clientHeight)       }     }   } 四、获取网页元素绝对位置...所以,只需要将这两个值进行累加,就可以得到该元素绝对坐标。 (图二 offsetTop和offsetLeft属性) 下面两个函数可以用来获取绝对位置横坐标和纵坐标。   ...五、获取网页元素相对位置 网页元素相对位置,指该元素左上角相对于浏览器窗口左上角坐标。 有了绝对位置以后,获得相对位置就很容易了,只要将绝对坐标减去页面的滚动条滚动距离就可以了。...六、获取元素位置快速方法 除了上面的函数以外,还有一种快速方法,可以立刻获得网页元素位置。 那就是使用getBoundingClientRect()方法。

3.2K70

PyQt5-如何设置主窗口居中?退出应用程序如何操作?

让主窗口居中,其实就是让窗口左右边缘到左右屏幕距离相等,让窗口上下边缘到上下屏幕距离相等;主要是需要进行计算和移动工作;可以使用 QDesktopWidget 类来获取屏幕大小和位置信息,然后根据这些信息计算出窗口位置和大小...:screen = QDesktopWidget().screenGeometry()1.2 获取窗口坐标使用geometry()方法获取到当前窗口坐标:size = self.geometry()1.3...屏幕坐标减窗口坐标对应计算:l = (screen.width() - size.width()) / 2t = (screen.height() - size.height()) / 21.4 移动位置最后就是移动窗口到计算好位置即可..., QDesktopWidgetclass CenterForm(QMainWindow): def __init__(self): super()....size = self.geometry() l = (screen.width() - size.width()) / 2 t = (screen.height

76340

Android利用自带位置服务,获取当前位置信息

笔者项目里,需要获取用户的当前位置信息,因为没有接地图SDK,打算用原生自带位置服务去做。操作了一下,踩了几个大坑,总算是幸不辱命。这里做个记录,顺便分享给大家。...Thread(Runnable { val serviceString = Context.LOCATION_SERVICE// 获取位置服务...: String {//一定要异步,否则获取不到 //用来接收位置详细信息 var result: List?...爬坑指南: 1.initLocation()这个方法,可以看到笔者是放在线程里跑,一定要这样做,否则拿到经纬度之后,无法通过经纬度获取位置信息。笔者在这里纠结了许久。...2.在通过经纬度获取位置信息时,获取result是个集合,他对你的当前位置做了不同维度描述,越后面的,描述得越精确。

3.1K00

iOS UITableView获取特定位置cell

偏移量值实际上可以代表当时处于tableView顶部cell在tableView上相对位置, 那么我们就可以根据偏移量获得处于顶部cellindexPath。...inSection:indexPath.section] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; } } 二、 获取处于...UITableView中心cell [获取UITableView中心线cell.gif] 获取处于tableView中间cell效果,用上述方案一比较麻烦:要考虑可见cell 奇、偶个数问题,还有...cell是否等高情况;方案二用起来就快捷方便多了,取cell位置纵坐标相当于在偏移量基础上又增加了tableView高度一半。...代码如下: - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ //获取处于UITableView中心cell //系统方法返回处于

4.7K80

如何获取对方IP,查询对方位置

首先运行OutLook express程序,并单击工具栏中“接受全部邮件”按钮,将朋友发送邮件接受下来,再打开收件箱面,找到朋友发送过来邮件,并用鼠标右键单击之,弹出右键菜单中,执行“属性”命令...当然,如果你使用是其他邮件客户端程序的话,查看发件人IP地址方法可能与上面不一样;例如要是你使用foxmail来接受好友邮件的话,那么你可以在收件箱中,选中目标邮件,再单击菜单栏中“邮件”选项,弹出下拉菜单中选中...例如,借助一款名为WhereIsIP搜查工具,你可以轻松根据对方好友Web网站地址,搜查得到对方好友IP地址,甚至还能搜查到对方好友所在物理位置。...中Domain Name Whois数据库联系,然后该数据库中搜查到与该Web网站地址对应IP地址了。...当然,除了可以知道IP地址外,你还能知道对方好友所在具体物理位置

6K30

iOS UITableView获取特定位置cell

偏移量值实际上可以代表当时处于tableView顶部cell在tableView上相对位置, 那么我们就可以根据偏移量获得处于顶部cellindexPath。...inSection:indexPath.section] atScrollPosition:UITableViewScrollPositionMiddle animated:NO]; } } 二、 获取处于...UITableView中心cell 获取UITableView中心线cell.gif 获取处于tableView中间cell效果,用上述方案一比较麻烦:要考虑可见cell 奇、偶个数问题,还有cell...是否等高情况;方案二用起来就快捷方便多了,取cell位置纵坐标相当于在偏移量基础上又增加了tableView高度一半。...代码如下: - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ //获取处于UITableView中心cell //系统方法返回处于

1.3K30

python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法

在窗口内部也有自己坐标系统,该坐标系统以客户区左上角为原点,左向右为x轴正方向,从上到下为y轴正方向,在客户区周围有标题栏和边框。 ?..., int y, int width, int height) 包含边框常用函数 获取窗口大小和位置 QWidget.frameGeometry() 设置窗口位置 QWidget.move...(int x, int y) 获取窗口左上角坐标 QWidget.pos() 屏幕坐标系统实例 from PyQt5.QtWidgets import QApplication,QMainWindow...') #x,y获取客户区左上角坐标(包含窗口标题与边框部分) print('widget.geometry().x()=%d' %widget.geometry().x()) print('widget.geometry...().y()=%d' %widget.geometry().y()) #width,height获取客户区宽度与高度 print('widget.geometry().width()=%d' %widget.geometry

2.4K31

“无法http:XXXXXX.svc?wsdl获取元数据”错误解决方法

昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容,但无法进行处理。   - WSDL 文档包含无法解析链接。  ...- 基础连接已经关闭: 接收时发生错误。   - 无法传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。   - 远程主机强迫关闭了一个现有的连接。...该错误是在使用svcutil生成client代码时报错误,服务是部署在IIS7上,部署过程都是完全教科书式进行。服务也正常启动了,显示如下内容 已创建服务。...wsdl命令去生成代码,就出现了开头说那个错误。而如果用visual studiowebdevserver启动,则一切正常。...经过一轮谷百之后,发现网上有很多类似的情况,有的说是因为用了wsHttpBinding协议引起,或者是元数据没有正确公开,但都不是他们说情况。后来找到了一篇文章,说是添加WCF引用一个陷阱。

3.4K20

MYSQL 8 metadata开始到如何获得语句由于获取锁失败错误

p.time and i.trx_mysql_thread_id not in (connection_id(),p.id); 通过这个方式可以将长时间等待metadata lock 不工作事务数据库中找出来...,用户prepare状态会被保持直到XA_COMMIT 或者 XA_ROLLBACK 除了这个问题以外,就是关于如何发现曾经MYSQL 发生过错误,一般情况MYSQL 5.X我们都是去找到ERROR...LOG ,里面去找寻可能发生信息,但是MYSQL 8 我们在performance_schema 中已经有了 events_errors 系列,这些表可以让你各个层面来了解MYSQL 在最近都发生过什么错误...1 event_error_summary_global_by_error 通过这个表,我们查看这个表可以记录错误种类有 5017种 select count(distinct error_name...; 以上这个表,主要是访问数据库用户角度来出发,查看这个用户曾经发生过什么样错误,我们可以改写一下这个查询语句,来更精确对这个账号发生过什么错误进行判断。

1.9K30
领券