【发布时间】:2017-08-07 03:04:18
【问题描述】:
我有一个带有长标签的 QComboBox。
qc = new QComboBox;
qc->addItem(tr("LabelA is a very long label here."));
下拉列表中的文本比我想要的要宽得多,但是当组合框处于显示项目列表的下拉状态时,我想要长文本字符串。
有没有办法让下拉菜单在未激活时显示一个短文本项目,并且只有在单击它(显示它的项目列表)后,下拉菜单才会以全宽显示整个文本?
所以在激活之前查看 QComboBox 时,它可能会显示类似 ...
MyLabel: LabelA
注意:文本的其余部分“在这里是一个很长的标签。”没有显示出来。
我确实看到了一些类似的问题,但答案没有得到检查,而且似乎没有用。
【问题讨论】:
-
如果我们在点击后设置QComboBox文本并处理带有索引的ComboBox,对你有用吗?
-
不确定我是否完全理解您的建议,但我会尝试研究一下。
-
我搜了一下,不可能。你必须手动完成。使用信号来更改文本,或者创建一个新类并从 QComboBox 继承并在继承的类中执行此操作。
-
您可以为组合框和下拉菜单设置不同的宽度,如果这样就足够了...例如通过 CSS:
QComboBox QAbstractItemView { min-width: XYZ; } -
好的,我会试一试,并最终报告我的发现。