3

我正在使用 Qt Designer在QFormLayoutQHBoxLayout容器内使用QLabelQLineEditQComboBox控件来布置表单。我需要做什么才能使控件按其文本的基线垂直对齐?

在 Max OS X 上预览对话框时,不同的控件不会按照它们的基线对齐。以下示例使用QHBoxLayout,但QFormLayout 也会发生同样的情况:

Max OS X 上的示例

请注意下划线如何不在同一垂直位置上。

我正在寻找一种适用于所有小部件组合的解决方案,其中基线调整适用,并且根据样式、平台、小部件组合、小部件大小和字体设置自动完成调整。可以与CSS相媲美的东西vertical-align: baseline;

更新

我已经在 Windows XP 上进行了相同的测试,并且还应用了 RA.s 关于使用样式表的建议。但这似乎并没有改变控件或其文本的任何位置。

Windows XP 上的示例

4

1 回答 1

1

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

更新

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

QLabel, QComboBox, QLineEdit
{
   background-position: bottom;
}
于 2012-08-20T16:00:12.613 回答