【问题标题】:Expanding only one column in a QGridLayout仅扩展 QGridLayout 中的一列
【发布时间】:2013-05-26 01:04:48
【问题描述】:

我有这个 QGridLayout:

当我有文件名和源名称的值时,我想将它们添加到 label1label2 中,仅扩展第二列足以读取所有字符串..

关于如何以简单的方式进行操作的一些建议?

【问题讨论】:

  • 您可以为左侧的标签设置固定宽度。这行得通吗?
  • 问题是我事先不知道我将设置的字符串的大小(这取决于从用户选择的文件)。我可以计算字符数并计算一个新的有,但它取决于使用的字体(我打算改变它..)有没有自动的方式说:“hei label, get a fixed with for show all the string”?
  • 我可能误解了你的问题。我认为您的问题是当您将文件名添加到第二列时,两列都调整了大小。现在看来,您希望将第二列扩展到特定大小,使其宽度足以显示其内容。我说的对吗?
  • 是的,你是对的,对不起我的英语不好

标签: c++ qt


【解决方案1】:

您可以通过QSizePolicy 类来完成。使用 QLabel 的方法setSizePolicy() 设置水平和垂直行为。在您的情况下,您需要将第一列中 QLabels 的水平策略设置为QSizePolicy::Maximum,因此它只占用它自己需要的空间;如果您希望 label1label2 扩展并占用所有可用空间,请使用 QSizePolicy::Expanding

文档 - http://qt-project.org/doc/qt-4.8/qsizepolicy.html#Policy-enum

另外,考虑为列添加拉伸 - http://qt-project.org/doc/qt-4.8/qgridlayout.html#setColumnStretch

【讨论】:

  • 我刚刚发现我也可以使用 Qt Designer 工具来完成,太好了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 2013-06-18
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-05
相关资源
最近更新 更多