【问题标题】:QComboBox AdjustToContents changing heightQComboBox AdjustToContents 改变高度
【发布时间】:2014-01-06 01:04:39
【问题描述】:

我正在尝试将QComboBox 设置为具有扩展高度,但会根据内容长度进行调整。

组合是这样创建的:

self.dataentrycombo = QComboBox()
self.dataentrycombo.setIconSize(QSize(48,48))
self.dataentrycombo.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
self.dataentrycombo.setSizeAdjustPolicy(QComboBox.AdjustToContents)
self.dataentrycombo.setModel(self.dataentrymodel)

填充模型后,大小会调整,但高度小于组合框所在的工具栏:

如果我改变我的主窗口大小,那么它将完全展开:

我尝试过使用QComboBox.AdjustToMinimumContentsLengthWithIcon,但它看起来像这样:

我的模型项目是这样创建的:

    item = QStandardItem(QIcon(form.icon), form.icontext)
    item.setData(form, Qt.UserRole + 1)
    self.dataentrymodel.appendRow(item)

额外信息:

  • Qt:4.7
  • Windows 7 和 8

【问题讨论】:

  • 我尽可能地复制了您的示例,但我无法重现这种行为。对我来说,设置大小策略足以扩展高度(否则,组合在工具栏中垂直居中)。所以我认为需要一个更完整的示例(除非涉及一些特定于版本或平台的问题)。
  • @Nathan W,几个月前我遇到了同样的问题,经过努力解决后,我终于找到了解决问题的解决方案。我刚刚在未扩展的小部件上调用了adjustSize()。在 QComboBox 对象上设置 model 调用 adjustSize() 之后。我认为这应该可以解决您的问题。如果它对您不起作用,请尝试在小部件上调用相同的方法,然后包含 combobox
  • 如果它仍然不起作用,请将窗口调整为当前大小。 self.resize(self.size())(这是调整窗口子级的技巧)
  • 尝试了所有这些方法,但似乎没有任何效果。
  • @NathanW。如果不查看用于构建工具栏的所有代码,我认为不可能提供帮助。了解您使用的平台以及您使用的 Qt 版本可能也很有用。

标签: qt pyqt qcombobox qtgui


【解决方案1】:

我能够使用以下方法修复它:

    self.dataentrycombo.setMinimumHeight(self.projecttoolbar.height())

这有点肮脏,但现在还可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2012-02-08
    相关资源
    最近更新 更多