【问题标题】:How to use spacers in Qt如何在 Qt 中使用分隔符
【发布时间】:2016-02-20 23:18:34
【问题描述】:

我有一个QGroupBox 分配给它QVBoxLayout

groupBox = QtGui.QGroupBox()
layout = QtGui.QVBoxLayout()
groupBox.setLayout(layout )

然后有一个QLabel 分配给布局。

label = QtGui.QLabel()   
layout.addWidget(label)

问题是 QLabel 位于 GroupBox 的中间。虽然我希望它与 GroupBox 的顶部边缘对齐。我可能需要添加某种垫片。因此,spacer 会动态调整自身大小以填充 GroupBox 的空白区域,从而将 QLabel 向上推。

应该使用什么小部件和什么尺寸策略作为间隔?

【问题讨论】:

    标签: python qt pyqt


    【解决方案1】:
    label = QtGui.QLabel()   
    layout.addWidget(label)
    verticalSpacer = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
    layout.addItem(verticalSpacer)
    

    这应该可以工作

    【讨论】:

    • layout.addStretch().
    【解决方案2】:

    在 pyQt5 中,QSpacerItemQSizePolicy 类现在是 QtWidgets 的一部分,因此您希望以这种方式创建垂直间隔...

    verticalSpacer = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) 
    

    【讨论】:

      猜你喜欢
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      相关资源
      最近更新 更多