Qt QCOMBOX调整内容改变高度
我试图将Qt QCOMBOX调整内容改变高度,qt,pyqt,qcombobox,qtgui,Qt,Pyqt,Qcombobox,Qtgui,我试图将QComboBox设置为具有扩展高度,但要根据内容长度进行调整 组合的创建方式如下: self.dataentrycombo = QComboBox() self.dataentrycombo.setIconSize(QSize(48,48)) self.dataentrycombo.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding) self.dataentrycombo.setSizeAdjustPolicy(QCo
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)
item = QStandardItem(QIcon(form.icon), form.icontext)
item.setData(form, Qt.UserRole + 1)
self.dataentrymodel.appendRow(item)
填充模型后,大小会调整,但高度小于组合框所在的工具栏:
如果我更改主窗口大小,它将完全展开:
我尝试使用QComboBox.AdjustToMinimumContentsLength with icon
,但结果如下:
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)
item = QStandardItem(QIcon(form.icon), form.icontext)
item.setData(form, Qt.UserRole + 1)
self.dataentrymodel.appendRow(item)
我的模型项的创建方式如下:
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)
item = QStandardItem(QIcon(form.icon), form.icontext)
item.setData(form, Qt.UserRole + 1)
self.dataentrymodel.appendRow(item)
额外信息:
- Qt:4.7
- Windows 7和8
self.dataentrycombo.setMinimumHeight(self.projecttoolbar.height())
这是一个有点肮脏的黑客行为,但目前还可以使用。我尽可能地复制了您的示例,但我无法复制这种行为。对我来说,设置大小策略足以扩展高度(否则,组合在工具栏中垂直居中)。因此,我认为需要一个更完整的示例(除非涉及某些版本或平台特定的问题)。@Nathan W,几个月前我遇到了同样的问题,在努力解决它之后,我终于找到了解决问题的解决方案。我刚刚在未展开的小部件上调用了
adjustSize()
。在QComboBox
对象上设置模型调用adjustSize()
后。我想这应该能解决你的问题。如果它对您不起作用,请尝试在小部件上调用相同的方法,然后包含组合框
,如果仍然不起作用,请将窗口调整为当前大小self.resize(self.size())
(这是一种调整窗口子窗口的方法)尝试了所有这些方法,但似乎都无效。@NathanW。我认为,如果没有看到用于构建工具栏的所有代码,就不可能提供帮助。了解您所在的平台以及您使用的Qt版本可能也很有用。