在QHBoxLayout中按基线垂直对齐组件

时间:2012-08-20 12:45:36

标签: macos qt qt-designer

我正在使用Qt Designer在 QFormLayout中使用 QLabel QLineEdit QComboBox 控件布局表单 QHBoxLayout 容器。我需要做什么才能让控件按照文本的基线垂直对齐?

在Max OS X上预览对话框时,不同的控件不会按其基线对齐。以下示例使用 QHBoxLayout ,但 QFormLayout 也是如此:

Example on Max OS X

注意下划线不在同一垂直位置。

我正在寻找适用于基线调整适用的所有窗口小部件组合以及根据样式,平台,窗口小部件组合,窗口小部件大小和字体设置自动完成调整的解决方案。与 CSS ' vertical-align: baseline;相似的东西。

更新

我已经在Windows XP上完成了相同的测试,并且还使用了样式表RA.s suggestion。但这似乎并未改变控件或其文本的任何位置。

Example on Windows XP

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您需要更改QLabel的垂直对齐方式。在Qt Designer中,您可以通过单击QLabel,然后调整标签的alignment属性来完成此操作。在这种情况下,我认为将垂直对齐方式更改为AlignBottom可能会解决您的问题。如果这不起作用,标签还有一个margin属性,您可以调整。

<强>更新

考虑将Qt's style sheets用于您的应用程序。以下样式表在我可以测试的平台上实现了预期的结果(不幸的是,它不包括OS X):

QLabel, QComboBox, QLineEdit
{
   background-position: bottom;
}