我有两个不同的QDockWidgets:一个包含另一个main_widget(File explorer)上方的一些按钮,另一个包含QTabWidget。
问题:我的目标是将main_widget和制表符的内容设置为相同的高度。我该如何做到最好?
这是基本布局:
# File explorer
file_dock = QDockWidget()
tools_layout = QHBoxLayout()
tools_layout.addWidget(QToolButton(...))
...
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
layout.addLayout(tools_layout)
layout.addWidget(main_widget)
file_dock.setLayout(layout)
# Editor
editor_dock = QDockWidget()
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
editortabs = QTabWidget()
...
layout.addWidget(editortabs)
初步解决方案:
我可以手动调整tools_layout
和main_widget
之间的间距:
layout.setSpacing(2)
但是此设置与操作系统和样式有关。
有没有办法计算所需的间距?
到目前为止,我已为sizeHint()
找到了minimumSize()
,totalMinimumSize()
和tools_layout
。在测试中,它们是相同的。哪一个使用?
这是所需信息的一半。如何确定标签的高度?在这里,我已经挖掘QStyle.pixelMetric()
,尝试
style = qapplication().style()
style.pixelMetric(QStyle.PM_TabBarHSpace)
# ! crashes the program