如何删除QLabel和QLineEdit之间的space

How to delete the space between QLabel and QLineEdit

我有一个这样的QDialog window,我想删除'Length'、'n'、'm'和相应的QLineEdit输入框之间的space .我怎样才能做到这一点?

如果您使用网格布局,我不确定为什么您的输出看起来像那样。一般Qt不会留下huge empty space那样的,我能想到的有3种可能:

  1. 您在 Length:、M: 或 N:
  2. 后有多个 SPACE
  3. 您的网格管理器中的 layoutHorizo​​ntalSpacing 太大。
  4. layoutColumnStretch 设置为支持网格管理器中的标签,应为“0,0”,而不是“1,0”。我的意思是,Label 的拉伸不应高于 lineedit。

不过,我会在您的应用程序中使用简单的表单布局。

您需要做的就是重置标签的 alignment

    label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlighVCenter)

这也可以通过 Qt Designer 中的 属性 编辑器完成。

您必须决定如何处理要删除的 space:

  • 缩小整个小部件:这取决于周围的布局,在它的右侧或左侧添加水平布局将使 space 超出您的小部件。
  • Space 在标签左侧 :您可以按照 ekhumoro 的建议将标签文本向右对齐,或通过在其左侧(在周围布局中)添加水平 spacer 直接缩小并向右对齐整个框架。
  • Space 在您的行编辑右侧 :像上面一样,您可以添加水平 spacers 或缩小和对齐框架。
  • Expand the line-edits : 移除它们的固定宽度(默认水平策略是展开)或设置一个更大的宽度。

要点是:space 必须在某个地方,除非您缩小父窗口小部件或放大一些内部窗口小部件。大小策略有助于判断哪个小部件应该占用可用 space,spacers 有助于让小部件之间留空 space。