【问题标题】:QComboBox display height in macOSmacOS 中的 QComboBox 显示高度
【发布时间】:2016-10-18 20:42:26
【问题描述】:
我有一个 QComboBox,我想同时显示图标和文本。因此,我需要将组合框的高度设置为至少是图标的高度——我在想 32px 左右,但这是灵活的。不幸的是,至少在 macOS 10.12 下(很确定我在旧版本上也遇到了同样的问题),我似乎根本无法更改组合框的高度,结果是当前选定的项目溢出组合框显示。
我已经尝试为 QComboBox 设置样式表以添加高度属性,以及在小部件本身上设置 minimumSize 高度属性,但不幸的是,到目前为止唯一的效果是在组合框周围添加空间 - 如尽管它更大,即使它不是。如何在 macOS 上更改组合框高度?谢谢。
【问题讨论】:
标签:
macos
qt
macos-sierra
【解决方案1】:
OS X 上的原生组合框不支持这个 :( Qt 的 mac 风格可以支持它,使它看起来不那么原生,但可惜它不支持。你必须让你的图标更小,或者重新设置组合的样式从头开始近似于想象中的大型原生组合的外观。
【解决方案2】:
在 Windows 和 Linux 上,我个人用这个样式表设置了组合框的高度,也许它可以在 macOS 上工作:
QComboBox QAbstractItemView::item{
min-height: 60px;
}
然后在代码中我更改了项目委托
ui->comboBox->setItemDelegate(new QStyledItemDelegate());
结果: