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

为什么在sizeHint中设置的QSize height返回的QRect是height的两倍?

在Qt的布局系统中,sizeHint()函数用于提供给布局管理器一个组件的建议尺寸。默认情况下,QWidget的sizeHint()函数会返回一个包含组件的大小的QSize对象。

在特定的情况下,QWidget的子类可能会重写sizeHint()函数,以提供自定义的建议尺寸。然而,当QLayout计算一个QWidget的尺寸时,它可能会调用sizeHint()函数来获取组件的宽度和高度。

在这个问题中,通过设置sizeHint()函数返回的QSize对象的高度,实际上会导致QLayout认为该组件的高度是设置的值的两倍。这是因为布局管理器使用QRect来表示组件的边界框,其中包括左上角的坐标和宽度、高度。

当调用sizeHint()函数时,布局管理器会使用返回的QSize对象的宽度和高度来创建一个QRect对象。在该过程中,QRect的宽度将设置为sizeHint()函数返回的宽度值,而高度将设置为两倍的sizeHint()函数返回的高度值。

原因是为了适应一些特殊情况,例如在某些布局中需要更大的垂直空间来容纳一些额外的内容或者视觉效果。通过返回高度的两倍,QLayout可以为组件提供更多的垂直空间。

然而,在大多数情况下,开发者不太可能直接使用这个特性。如果希望sizeHint()返回的QSize对象的高度和宽度相等,只需确保重写的sizeHint()函数返回一个正方形的QSize对象即可。

这是一个解释sizeHint()函数返回QRect高度为设置高度两倍的默认行为的完整回答。如果需要更多关于Qt的信息,可以参考腾讯云的Qt产品介绍页面(https://cloud.tencent.com/product/qt)上的相关文档。

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

相关·内容

Pyqt5 关于流式布局和滚动条综合使用示例代码

流式布局 所谓流式布局指的是容器元素像流水一样,可以浮动,当元素一行或者一列占满时候,它会自动流入到下一行或者下一列。...pyqt5流式布局 pyqt采用流式布局方法原理,通过contentsMargins获取到子元素距离布局上下左右宽度,然后我们将所有子元素进行遍历,如果它加上边距可以一行放入的话,那么就放在一行内...()) 滚动条设置 pyqt中有专门滚动条组件QScrollBar,这个组件需要配合其他组件使用,我们这里使用QScrollArea这个组件进行滚动条设置。...滚动条使用方法 首先,我们需要声明QScrollArea 然后,我们需要设置QScrollArea位置大小 最后,我们将需要产生滚动条元素放入它内部。...: 文件当前目录创建一个images文件夹,然后放入想要展示多张图片,然后执行当前程序,就会看到带有滚动条流式布局界面。

2.1K10

Pyqt5 关于流式布局和滚动条综合使用

流式布局 所谓流式布局指的是容器元素像流水一样,可以浮动,当元素一行或者一列占满时候,它会自动流入到下一行或者下一列。...pyqt5流式布局 pyqt采用流式布局方法原理,通过contentsMargins获取到子元素距离布局上下左右宽度,然后我们将所有子元素进行遍历,如果它加上边距可以一行放入的话,那么就放在一行内...(QRect(QPoint(x, y), item.sizeHint())) x = next_x line_height = max(line_height..., item.sizeHint().height()) 滚动条设置 pyqt中有专门滚动条组件QScrollBar,这个组件需要配合其他组件使用,我们这里使用QScrollArea这个组件进行滚动条设置...: 文件当前目录创建一个images文件夹,然后放入想要展示多张图片,然后执行当前程序,就会看到带有滚动条流式布局界面。

1.4K10
  • PySide6 GUI 编程(43):自定义 QWidget

    这包括窗口重绘、控件状态变化等。 使用 QPainter: paintEvent ,通常会使用 QPainter 类来执行绘制操作。...__init__(parent) # 显式设置控件最小大小,这个值静态值 self.setMinimumSize(100, 100) # setSizePolicy...(self) -> QSize: # 当布局管理器计算控件大小时,它会首先检查控件最小大小 # 如果最小大小大于 sizeHint 返回建议大小,布局管理器将使用最小大小...,这个值静态值 self.setMinimumSize(100, 100) # setSizePolicy 接受两个参数,分别表示控件水平方向和垂直方向上大小策略...(self) -> QSize: # 当布局管理器计算控件大小时,它会首先检查控件最小大小 # 如果最小大小大于 sizeHint 返回建议大小,布局管理器将使用最小大小

    17543

    python GUI框架pyqt5 对图片进行流式布局方法(瀑布流flowlayout)

    流式布局 流式布局,也叫做瀑布流布局,网页中经常使用一种页面布局方式,它原理就是将高度固定,然后图片宽度自适应,这样加载出来图片看起来就像瀑布一样整齐水流淌下来。...pyqt流式布局 那么pyqt5我们怎么使用流式布局呢?pyqt没有这个控件,需要我们自己去封装,下面流式布局封装代码。...= self.doLayout(QRect(0, 0, width, 0), True) return height def setGeometry(self, rect): super(...item.sizeHint())) x = nextX lineHeight = max(lineHeight, item.sizeHint().height()) return y...下面我们写一个瀑布流显示图片代码: from PyQt5.QtCore import QPoint, QRect, QSize, Qt import os from PyQt5 import QtCore

    1.5K10

    Qt Model_View教程之Delegate

    之前文章里主要介绍了Qt Model/View 一些基本用法,接下来结合Delegate做最后说明。...之前所有例子,cell填充要么text文本或是checkbox,那么如果我们想要填充自己定义一些东西时该怎么做呢?这就涉及到了Delegate。...之前view我们一直使用默认Delegate,现在我们想要填充自己定义内容,比如说cell填充五角星,这就需要我们重新实现Delegate。效果如下: ?...为了简化功能,填充五角星并没有可编辑能力,而我们只需要重新实现QStyledItemDelegate类paint和sizeHint方法即可。...()StarRating时我们才使用自己定义五角星,否则使用QStyledItemDelegate来进行绘制。

    1.5K10

    初步学习Qt布局

    布局管理 以下Qt手册《布局管理》译文 一个Widget,Qt布局管理系统提供了一个简单而有效方式来自动组织子widget,以保证他们能够很好地利用可用空间。...布局会自动重新定义它们父类(通过QWidget::setParent())以确保它们装载布局widget子类。 注意1:布局控件装载布局控件子控件,不是布局子控件。...即便实现了QWidget::heightForWidth(),也有必要提供合理sizeHint()。 进一步了解,参见:Trading Height for Width....通过函数,需要再次使用,最好将结果保存在本地变量同样函数同一个元素,不应该调用两次 QLayoutItem::setGeometry()。...布局 布局一个种高雅而灵活方式来自动把子类窗体小部件组织到它们容器。每个窗体小部件通过sizeHint和sizePolicy属性向布局提供大小需求,布局根据可用空间进行分配。

    7K10

    解决onCreate()过程获取Viewwidth和Height为0方法

    那么onCreate()获取viewwidth和height会得到0呢,原因Androidoncreate和onMesure不同步,我们onCreate里面获取width和height,...针对上面的问题,网上提供了4种解决方案: 1,View.post() 此方法思路onCreate里面执行一个线程,知道获取View宽高属性。...一般来说OnGlobalLayoutListener就是可以让我们获得到viewwidth和height地方 但是注意这个方法每次有些viewLayout发生变化时候被调用(比如某个View...被设置为Invisible),所以得到你想要宽高后,记得移除onGlobleLayoutListener。...4,重写ViewonLayout方法 我们知道Androidview绘制流程onMesure->onLayout()顺序,所以onLayout获取也是真实数据。

    1.2K80

    Qt编写自定义控件9-导航按钮控件

    这个控件总结了大部分导航条样式,比如左侧+右侧+顶部+底部,线条指示器,倒三角指示器等。还可以导航条前面加上图标等,就显得更加有特色。有了此控件,再也不用担心没有精美的导航了。...sizeHint() const; QSize minimumSizeHint() const; public Q_SLOTS:...= this->height(); QRect bgRect; if (linePosition == LinePosition_Left) { bgRect = QRect...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。...自带activex控件demo,所有控件可以直接运行在ie浏览器。 集成fontawesome图形字体+阿里巴巴iconfont收藏几百个图形字体,享受图形字体带来乐趣。

    2.5K30

    sizeHint() minimumSizeHint() sizePolicy() 使用

    当它是一个无效值时候(sizeHint().isValid() 返回 false,QSize width 或者 height 有一个为复数就会是无效),什么作用也没有;当它是一个有效值时候,它就成了...//output: 2: //1009 , 520 3: //-1 , –1 输出结果第二行:sizeHint() 返回一个无效 QSize,因为 widget 没有布局...(97,45)供 widget 参考; 输出结果第三行:中间 button 实际大小; 从输出结果可以证明以上说过两点: 1) widget 有 layout 情况下,其 sizeHint...sizeHint() 返回不一样,后者返回能够容纳下所有包含在 layout 内组件最小尺寸。...),以下就是缩小到了极致:(112,10),同学,是否思考为什么 width 无法缩小到比 112 更小了。

    2.3K10

    Qt编写自定义控件39-导航标签

    一、前言 很多菜单导航界面,当单击了二级菜单或者三级菜单以后,顶部会显示带箭头或者其他标识导航标签,可以单击该标签快速切换到对应界面,也作为指示当前处于哪一级菜单下界面,主要在WEB中大肆流行...,CS架构项目中也逐渐应用开来,发现现在越来越多CS开发程序,都学习和模仿并应用BS架构程序方面,尤其UI方面,取长补短,挺好,专业UI设计师美感比绝大多数程序员美感要好很多,他们设计出来效果都是非常棒...sizeHint() const; QSize minimumSizeHint() const; public Q_SLOTS:...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。...自带activex控件demo,所有控件可以直接运行在ie浏览器。 集成fontawesome图形字体+阿里巴巴iconfont收藏几百个图形字体,享受图形字体带来乐趣。

    86700

    PyQt5-Qt Designer控件尺寸相关设置(sizePolicy策略)

    1 设置控件尺寸1.1 查看最大和最小尺寸默认情况下控件最大值和最小值没有做限制;比如拖动一个按钮,看下它属性:图片从图中可以看到最小值为0,最大值也有个限制,我们可以在这个范围内对控件进行随意拖动放大和缩小...,如下:图片2 期望尺寸2.1 期望尺寸每个控件都有一个默认推荐尺寸或期望尺寸(sizeHint);大部分控件,sizeHint只读属性;拖两个按钮和文本控件,如下:图片保存为test011_sizeHint.ui..._sizeHint.py代码中加入如下,分别获取三个控件期望尺寸:self.控件.sizeHint().height()self.控件.sizeHint().width()获取textEdit期望尺寸...:{self.textEdit.sizeHint().height()}") print(f"获取控件textEdit期望尺寸宽度:{self.textEdit.sizeHint()....:{self.pushButton.sizeHint().height()}") print(f"获取控件pushButton期望尺寸宽度:{self.pushButton.sizeHint

    2.2K50

    Qt编写自定义控件42-开关按钮

    一、前言 从2010年进入互联网+智能手机时代以来,各种各样APP大行其道,手机上面的APP有很多流行元素,开关按钮个人非常喜欢,手机QQ、360卫士、金山毒霸等,都有很多开关控制一些操作,Qt...总结了大部分开关按钮控件,基本上有两大类,第一类纯代码绘制,这种对代码掌控度要求比较高,但是灵活性比较好。第二类贴图,专业美工做好各种状态背景图片,只需要用代码将该图片画到界面上即可。...为了能够涵盖两大类开关按钮,特意将常见四种类型(圆角矩形/内圆形/外圆形/图片)都集成到了自定义开关按钮。...sizeHint() const; QSize minimumSizeHint() const; public Q_SLOTS: //设置间隔...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。

    2.2K10

    Qt编写自定义控件17-按钮进度条

    一、前言 按钮进度条,顾名思义,表面上长得像一个按钮,单击以后切换成进度条指示按钮单击动作执行进度,主要用在一些需要直接在按钮执行动作显示对应进度场景,很多网页中经常看到这种效果,这个效果有个优点就是直接在原地显示进度条...二、实现功能 1:可设置进度线条宽度+颜色 2:可设置边框宽度+颜色 3:可设置圆角角度+背景颜色 三、效果图 [在这里插入图片描述] 四、头文件代码 #ifndef PROGRESSBUTTON_H...sizeHint() const; QSize minimumSizeHint() const; private slots: void progress(); public...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。...自带activex控件demo,所有控件可以直接运行在ie浏览器。 集成fontawesome图形字体+阿里巴巴iconfont收藏几百个图形字体,享受图形字体带来乐趣。

    1.4K00

    Qt编写自定义控件33-图片切换动画

    一、前言 很多看图软件,切换图片时候可以带上动画过渡或者切换效果,显得更人性化,其实主要还是炫一些,比如百叶窗、透明度变化、左下角飞入等,无论多少种效果,核心都是围绕QPainter来进行,将各种动画效果对应图片区域动态计算并绘制出来...sizeHint() const; QSize minimumSizeHint() const; public Q_SLOTS: //设置动画因子...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。...自带activex控件demo,所有控件可以直接运行在ie浏览器。 集成fontawesome图形字体+阿里巴巴iconfont收藏几百个图形字体,享受图形字体带来乐趣。...七、SDK下载 SDK下载链接:https://pan.baidu.com/s/1A5Gd77kExm8Co5ckT51vvQ 提取码:877p 下载链接包含了各个版本动态库文件,所有控件头文件,

    2K00

    40.QT-QPropertyAnimationdong和QParallelAnimationGroup动画实现

    easingCurve() const; //返回EasingCurve曲线设置(EasingCurve:可以设置动画运动曲线动作) void...(qreal step, const QVariant &value); //设置动画在不同时间帧时所在位置 //step(0~1): 时间帧,0表示为开始帧,1表示结束帧,0.5表示中间时间帧...// value:表示对应step时间帧所在动画位置(比如设置抖动,则会用到该函数) QVariant keyValueAt(qreal step) const; //返回step...//当运行动画位置改变时,则会发出这个信号 3.QPropertyAnimation (用来向QObject对象添加动画属性) 该类构造函数如下所示: QPropertyAnimation(QObject...代码如下: //设置图标 void loginwindow::setIconPix(QLabel *l,const QString & name,QSize size) { QPixmap pix

    87140

    Qt编写自定义控件40-导航进度条

    二、实现功能 1:可设置前景色/背景色/当前值前景色/当前值背景色 2:可设置最大步数及当前第几步 3:可设置导航标签队列文字信息 4:可设置三种风格样式 京东订单流程样式/淘宝订单流程样式/支付宝订单流程样式...sizeHint() const; QSize minimumSizeHint() const; public Q_SLOTS: //设置导航顶部标签数据...linux等,不乱码,可直接集成到Qt Creator,和自带控件一样使用,大部分效果只要设置几个属性即可,极为方便。...自带activex控件demo,所有控件可以直接运行在ie浏览器。 集成fontawesome图形字体+阿里巴巴iconfont收藏几百个图形字体,享受图形字体带来乐趣。...七、SDK下载 SDK下载链接:https://pan.baidu.com/s/1A5Gd77kExm8Co5ckT51vvQ 提取码:877p 下载链接包含了各个版本动态库文件,所有控件头文件,

    1.4K11

    Qt DesignerQWidget属性表介绍

    int h)或setGeometry(QRect )设置该属性值(注:QRectQt一个类,该类提供了一组函数,它们返回各种矩形坐标,并支持对它们进行操作。...sizeHint和minimumSizeHint sizeHint布局管理器中部件缺省大小,如果部件不在布局管理,那么这就是无效值;该值Qt对每个部件大小建议值,也是缺省值,不能修改。...---- sizePolicy属性用于说明部件布局管理缩放方式,当部件没有布局管理器时,该设置无效。...setMinimumSize(QSize)或setMinimumSize(int minw, int minh)来设置 使用minimumSize()返回当前值,如果值被设置QSize(0,0)则表示最小尺寸无效...Designer没有,这是因为这4个取值不是属性编辑静态设置,而是在运行时调整; 2、上述列表中英文和译文都列出取值解释,但是怕翻译得不够准确,所以列出英文进行对照。

    10.7K20
    领券