【问题标题】:QComboBox item text truncated on WindowsQComboBox 项目文本在 Windows 上被截断
【发布时间】:2016-08-24 13:05:59
【问题描述】:

我有一个使用 PySide 的标准 QComboBox,项目名称相当长,在 Windows 上由于某种原因被截断,但在 Ubuntu (Gnome) 中没有。 我只设置了:

self.ConfChoose = QtGui.QComboBox()
self.ConfChoose.addItem('blablablabla')

等等。没有额外的策略设置。

关于为什么以及如何使项目不被截断的任何想法?我可以将 QComboBox 的大小设置为最长文本字符串的大小,但这不是解决方案。它应该就像在 Ubuntu 上一样。

【问题讨论】:

  • 它的行为不应该像在 Ubuntu 上那样,因为 Windows 风格的行为就像原生 Windows 控件一样。您可能可以更改该行为,但这一切都来自样式系统。它与小部件本身的大小无关。
  • 您可以创建自己的列表视图并使用QComboBox::setView 将其设置到您的组合框。或者你可以修改现有的列表视图,使用QComboBox::view获取列表视图。
  • 感谢两位的指导。是的,显然它是 Windows 视图的原生内容(Qt Deigner 中的简单测试,Gtk 和 Windows 中的预览显示相同的行为)。 QComboBox.view() 有很多东西,我不确定这个菜单大小规则设置在哪里。我应该查看哪个属性的任何帮助?

标签: python qt pyside qcombobox


【解决方案1】:

终于得到了一个我可以接受的解决方案:

self.ConfChoose = QtGui.QComboBox()
[self.ConfChoose.addItem(name) for name in self.listOfStrings]
w=self.ConfChoose.fontMetrics().boundingRect(max(self.listOfStrings, key=len)).width()
self.ConfChoose.view().setFixedWidth(w+10)

感谢您提供正确方向的意见...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多