【发布时间】:2016-06-11 15:53:47
【问题描述】:
我有一个自定义 QDialog,它由一个 QStackedWidget 和 QScrollArea 小部件组成,用于堆叠小部件的每个页面。
我想为 QDialog 设置大小提示,使对话框足够大,以至于在首次显示对话框时滚动区域的滚动条不可见(即确保 QScrollArea 视口的大小 = 子项的大小提示滚动区域中的小部件)。目前,QDialog 的默认 sizeHint() 实现高度不足,这会导致在首次加载时显示垂直滚动条。
我认为这可以通过为 QDialog 重新实现 sizeHint() 来实现,由此对话框的大小提示将根据 QScrollArea 视口大小所需的量进行调整,以等于滚动区域(用于堆叠布局的第一页)。不幸的是,在 sizeHint() 中,QScrollArea 视口的大小被设置为 QStackedWidget (640x480) 的默认大小,并且只有在显示 QDialog 时才会更新为正确的大小。
有没有什么方法可以在QScrollArea视口显示之前得到正确的大小,或者有什么方法可以达到想要的效果,调整对话框的大小提示,防止滚动条在第一次显示的时候就显示出来(除了对对话框大小进行硬编码)。
【问题讨论】: