其他分享
首页 > 其他分享> > 关于Qt的QScrollArea往里面添加多个子控件时,子控件被压缩的问题

关于Qt的QScrollArea往里面添加多个子控件时,子控件被压缩的问题

作者:互联网

这边的需求是动态往QScrollArea里添加提示控件,结果发现添加太多后导致提示控件变形。
在这里插入图片描述
如上图,提示控件已经被挤压得看不出原型。
使用了setWidgetResizable,发现没啥效果。QScrollArea在初始化完之后里面的scrollAreaWidgetContents也就是里面的Widget已经固定大小了。
最后用的方法是每次点击添加时候,重新设置QScrollArea里面的Widget大小,也就是固定死大小。

	m_pScrollWidget->setMinimumSize(400, 100 + m_nScrollItemCount * 55);
    m_pScrollWidget->setMaximumSize(400, 100 + m_nScrollItemCount * 55);

或者直接Fix

m_pScrollWidget->setFixedSize(400, 100 + m_nScrollItemCount * 55);

有尝试用过setGeometry(),但是不生效。应该是Widget是放在布局里,要设置最小的SIZE才能撑开布局。
因为每次要添加进去的控件高度都是一样的,所以每次重设的高度是初始高度 + 子控件数 * 子控件高度。根据需求计算高度。
在这里插入图片描述
如上图,反复点击按钮添加提示框也不会挤压在一块了。
如果有更好的方法欢迎评论区指出QAQ

标签:控件,Widget,Qt,添加,400,nScrollItemCount,QScrollArea
来源: https://blog.csdn.net/t13506920069/article/details/113795471