Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QCOMBOX调整内容改变高度_Qt_Pyqt_Qcombobox_Qtgui - Fatal编程技术网

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版本可能也很有用。