QT开发中,当一个widget的部分子对象隐藏,主动刷新widget控件的大小

QT开发中,当一个widget的部分子对象隐藏,主动刷新widget控件的大小,这时可以利用QT的Layout对象,相当于一个空降的管理器,可以帮助自动布局等,代码如下

	if(layout() == nullptr) //是否有布局对象(layout)
	{
    
    
		return;
	}
	layout()->invalidate(); //使原先的布局失效
    layout()->activate(); //再次激活
    layout()->update(); //更新模板
    adjustSize(); //调整大小

这样就能再代码隐藏widget子对象时,主动刷新widget的大小;如果不生效,可以看看widget是否被其他layout包含着,如果有,对外面的layout执行同样的操作(invalidate 和activate)。

猜你喜欢

转载自blog.csdn.net/qq_41841073/article/details/131931630