qt获取控件位置大小异常_qt qgraphicsview的size为什么不对-程序员宅基地

技术标签: QT  

在这里插入图片描述
在qt界面上放了一个QGraphicsView控件,功能上需要获取这个控件的大小。
在构造函数内,通过下面代码获取QGraphicsView的位置大小:

ui->graphicsView->rect();

一开始没有设置界面的布局的时候,完全没问题,但将布局改为垂直布局或者水平布局的时候就发现获取到的控件大小不对。
在这里插入图片描述
界面初始化之后的大小是778x553,但构造函数里拿到的大小是100x30,显然不对!

后来想到重写界面的resizeEvent事件来获取,结果还是不行。
后来想着哪个事件是界面初始化完成之后触发的,想来想去还是通过写一个计时器来实现吧,在构造函数里加上下面的代码:

m_Timer = new QTimer(this);
connect(m_Timer,&QTimer::timeout,this,&MainWindow::timerOut);
m_Timer->start(50);

写一个timerOut()函数来接收m_Timer的timeout事件

void MainWindow::timerOut()
{
    
    m_Timer->stop();
    qDebug()<<"graphicsView size after timerOut:"<<ui->graphicsView->rect();
}

测试结果如下,可以看到在构造函数执行完成50ms之后,再获取QGraphicsView控件位置大小就准确了:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43935474/article/details/115939816

智能推荐

Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/all.cmake:208 (safe_execu-程序员宅基地

文章浏览阅读3.4k次。CMake Error at /opt/ros/melodic/share/catkin/cmake/safe_execute_process.cmake:11 (message): execute_process(/usr/bin/python "/tmp/QtCreator-XzPzFL/qtc-cmake-iCElsmaa/catkin_generated/generate_cached_setup.py") returned error code 1Call Stack (most r_call stack (most recent call first):

模型提取-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏19次。3D游戏模型提取、导入、导出教程这个是我的第二个教程,这个教程的主要内容是教大家如何提取3D游戏里的模型,因为有一些3D游戏里面的模型非常精致,例如有一些人物模型或者场景模型。这样大大方便了模型的制作过程。希望这个教程能对大家有用。一,下载安装 1、下载3D游戏模型提取软件,下载地址:http://pan.baidu.co_模型提取

【避免if else标准写法】阿里P7级别(年薪40w-70w)是如何避免用if else写代码_阿里规范尽量不要else if-程序员宅基地

文章浏览阅读773次,点赞16次,收藏7次。不会吧还有人用if else和switch case?三目运算符?不会吧? 不会吧?大佬都是全都不用的!以JAVA为例条件判断语句的四种写法,茴字的四种写法大家不会不知道吧1.正常人写法: private static String MAN = "man"; private static String WOMAN = "woman"; @Data static class Person{ private String gender; p_阿里规范尽量不要else if

cv2.blur图像滤波(Filter)处理学习笔记-程序员宅基地

文章浏览阅读2.8w次,点赞21次,收藏225次。一、cv2.blur(img,ksize) 均值滤波img:原图像ksize:核大小原理:它只取内核区域下所有像素的平均值并替换中心元素。3x3标准化的盒式过滤器如下所示:特征:核中区域贡献率相同。作用:对于椒盐噪声的滤除效果比较好。import cv2img = cv2.imread("image\\lenaNoise.png")result = cv2.blu..._cv2.blur

Hisi外设ADC的使用_lsadc-程序员宅基地

文章浏览阅读790次。Hisi外设ADC的使用:https://notes.z-dd.net/2020/03/07/Hisi%E5%A4%96%E8%AE%BEADC%E7%9A%84%E4%BD%BF%E7%94%A8/_lsadc

「分享」Word文档被锁定无法编辑怎么办?4种方法解决_docx被锁定无法编辑-程序员宅基地

文章浏览阅读3.7k次。Word文档被锁定了无法编辑,那就试试这4种方法吧!_docx被锁定无法编辑

随便推点

oracle中查找执行效率低下的SQL_oracle 怎么抓取执行慢的sql-程序员宅基地

文章浏览阅读9.9k次。oracle中查找执行效率低下的SQLkt431128 发布于 9个月前,共有 0 条评论v$sqltext:存储的是完整的SQL,SQL被分割v$sqlarea:存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息(统计)v$sql:内存共享SQL区域中已经解析的SQL语句。(即时) select opname, ta_oracle 怎么抓取执行慢的sql

linux下iso8859乱码,在Linux上转换UTF-8和ISO-8859之间的文件-程序员宅基地

文章浏览阅读3k次。每当我遇到Unicode时,都没有用.我在Linux上,我从Windows获得这些文件:$file *file1: UTF-8 Unicode textfile2: ISO-8859 textfile3: ISO-8859 text在我发现文件有不同的编码之前,没有任何工作.我希望让我的生活变得轻松,并将它们全部放在相同的格式中:iconv -f UTF-8 -t ISO-8859 file1 &..._iso-8859 text

如何确定当前项目是采用 Vite 还是 Vue CLI 项目

检查项目根目录下是否有一个名为或的文件。这是 Vite 项目的配置文件。在文件中,查看和部分是否包含vite和(对于 Vue 3)或(对于 Vue 2)。

如何在Linux服务器上安装Stable Diffusion WebUI

如何在Linux服务器上安装Stable Diffusion WebUI

Stable Diffusion一键安装包启动疑难报错解析:Python 无法找到模块‘urlib’以及其他报错的解决方法

如果您遇到 ModuleNotFoundError: No module named ‘_socket’ 错误,这可能意味着您的 Python 安装存在问题或缺少了某些核心组件。对于不熟悉SD内部工作原理的用户来说,这无疑增加了解决问题的难度。(简称SD)这一强大技术的旅程中,我们有时可能会遇到一些始料未及的问题。其中,启动一键安装包时遭遇的“Python 无法找到模块‘urlib’”的报错,就是许多新手用户可能会碰到的一个挑战。在使用图生图功能时遇到错误提示,显示为“'Image'对象不支持下标操作”。

【随想录】Day34—第八章 贪心算法 part03

每到一个站点后,此时是有补充有消耗的,关注点:当前还剩余多少油。

推荐文章

热门文章

相关标签