【发布时间】:2016-10-17 15:11:59
【问题描述】:
当我更改我的 QComboBox comboBox->setFont(whateverQFont); 的字体时,它也会应用于下拉菜单(所有项目),它会覆盖我使用 comboBox->setItemData(index, itemSpecificFont, Qt::FontRole); 在我的项目上设置的 Qt::FontRole 数据
我想只在 QComboBox 标签上设置一种字体,并让下拉菜单保持原样显示。甚至更好:直接使用与所选项目相同的字体。
有没有简单的方法来做到这一点?
编辑: Jasonhan 的解决方案适用于可编辑的 QComboBox(-> 在 QLineEdit 上设置字体),但不适用于常规 QComboBox,因为 QLabel是私人的。
【问题讨论】:
-
通过检索 currentData-fontRole 并将字体应用于画家,我已经能够在绘画功能中实现我想要的。虽然它需要复制/粘贴 QComboBox 绘制代码以在子类中对其进行修改...如果有人有更简洁的方法来解决我的问题,请告诉我!
-
不知道我是否理解这个问题,但你为什么不能使用 CSS doc.qt.io/qt-5/stylesheet-examples.html#customizing-qcombobox ?
-
@agilob 我希望组合框的标签部分显示与所选项目相同的样式,因此取决于项目。该项目的样式由代码定义,我看不到任何使用 CSS 将其传播到 cbb-label 的方法。