我在一个QSplitter
内有一个QTreeView
,我想设置它的初始大小。我发现我可以在QTreeView
上同时设置setMinimumWidth(val)
和{
setMinimumWidth(val)
只防止QTreeView
小于val
的值,setFixedWidth
阻止用户完全调整QTreeView
的大小。在
有没有办法通过设置QSplitter
或设置QTreeView
来设置初始大小?我想我需要设置sizeHint
,但我不太确定。在
我在PyQt5中使用python3
您可以重新实现
sizeHint
来设置初始大小:但是,如果不希望创建子类,并且您不介意设置一个比例初始大小,那么可以使用QSplitter.setSizes。Qt文档以这种方式定义此方法的行为:
所以大小之和是否大于拆分器并不重要;重要的是相对权重。考虑到这一点,我们只需计算出可用的最大可能大小,然后将其相应地划分,如下所示:
^{pr2}$这将使第一个小部件比第二个小部件大两倍。在
除了这些方法之外,还可以使用QSplitter.saveState和QSplitter.restoreState来保存和恢复用户在上一个会话中设置的拆分器大小。在
PS:
如果您使用的是Qt设计器,那么上面的
sizeHint
方法可以用于小部件升级,这非常容易实现。有关如何执行此操作的说明,请参见this answer。在相关问题 更多 >
编程相关推荐