2010-03-01 80 views
2

是否有一种简单的方法可以确保Qt对话框中不同组合框中的控件正确排列使用布局?如果没有,有没有办法在对话框的构造函数中使用代码来排列它们?对齐Qt GroupBox标签

例如,这里是一个包含有布局使用网格控件中两个groupboxes形式:我多么希望它看起来

alt text http://lh3.ggpht.com/_4pUyapZ-mEE/S4w93l4Ab5I/AAAAAAAACQE/mJraY0z1jyI/groupbox1.png

这里是:

alt text http://lh5.ggpht.com/_4pUyapZ-mEE/S4w93rKiEBI/AAAAAAAACQI/nlt7mul79p8/groupbox2.png

请注意,这些对话框最终会翻译成不同的语言,因此英语中可能最长的标签不一定是德语中的同一个标签。

回答

2

我不认为有一个简单的解决方案,因为你必须分开和不连接布局。你可以做的是设置布局迭代所有标签字符串,并在其标签小部件上使用QWidget::fontMetrics()来测量其大小,记住最大值并致电QWidget::setMinimumWidth()。你也可以在翻译字符串之后(如果你在运行时动态地做)。

+0

好的,我使用sizeHint()来做类似的事情来找到最长的标签。 – Rob

+0

@Rob:没错,当你已经构建了QLabels时,这是有道理的。如果你打算从字符串构造标签,你可以迭代字符串并用'fontMetrics()'来测量它们的大小,但是在这种情况下我同意'sizeHint()'。 –