QT中sizeHint虚函数的使用的理解

本文探讨了在QT中如何理解和使用sizeHint虚函数,特别是涉及控件尺寸自动更新的情况。通过实例展示了在继承QWidget并设置布局后,如何重写sizeHint以根据图片大小调整控件尺寸。分析了updateGeometry()的作用,指出控件显示时(show())才会触发sizeHint的自动调用,并提到了在特定情况下sizeHint推荐值可能不被完全采纳的机制。
摘要由CSDN通过智能技术生成

sizeHint函数讲解用法

函数原型virtual QSize sizeHint() const
此函数是一个虚函数,再QT5.9版本中没找到此函数的归属。但是如果继承了QWidget,而且想要自动更新控件大小,就得需要对其进行重写,它会返回一个推荐值.

This property holds the recommended size for the widget
If the value of this property is an invalid size, no size is recommended.
The default implementation of sizeHint() returns an invalid size if there is no layout for this widget, and returns the layout’s preferred size otherwise.

而且使用这个前提是控件必须有了布局管理器,这个函数才会有效.有效判断是返回值的QSize的值,负数肯定就没用啊,大小不能是负数吧哈哈.
好了理论不说了,看我的文章的各位大佬们应该都会发现,文章整体就是用实际操作来体现的,因为我的语言比较匮乏,见谅啦。
首先继承了QWidget类,做一个控件:

QImage_Edit::QImage_Edit(QWidget *parent)
    : QMainWindow(parent),zoom(20)
    {
   
    	this->_image = QImage(16,16,QImage::Format_ARGB32);
	    this->_menubar = this->menuBar();
	    QAction *aopenfile = new QAction(tr("open image"));
	    this->_menubar->addAction(aopenfile);
	    QAction *updatewidget =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值