Стиль QComboBox в Mac OSX
У меня возникли проблемы со стилем всплывающего окна со списком Qt5 в Mac OSX
моя таблица стилей для QComboBox
QComboBox {
font-size: 11px;
height: 16px;
padding: 1px 5px 1px 5px;
border: 2px groove #4B4F4F;
border-bottom: 2px ridge #424545;
border-right: 2px ridge #424545;
border-radius: 3px;
color: #DEDEDE;
background: qlineargradient(x1:0, x2:0, y1:0, y2:1, stop:0 #6B6E6E, stop:1 #595B5B);
}
QComboBox::drop-down {
subcontrol-origin: padding;
subcontrol-position: top right;
width: 14px;
border-left-width: 1px;
border-left-color: #999999;
border-left-style: solid; /* just a single line */
border-top-right-radius: 3px; /* same radius as the QComboBox */
border-bottom-right-radius: 3px;
}
QComboBox::down-arrow {
height: 8px;
width: 8px;
image: url(:/resources/images/downarrow.png);
}
QComboBox:on {
border: 1px solid #00A7CC;
padding-left: 6px;
}
QComboBox QAbstractItemView {
min-width: 100px;
outline: 1px solid #808A8A;
border: 1px solid #373838;
selection-background-color: #808A8A;
background-color: #4A4C4F;
}
QComboBox:!enabled {
color: #909090;
}
Результат на Mac OSX выглядит так:
Следующие вещи, которые я хотел бы изменить:
- Избавьтесь от пустого пространства в верхней и нижней части всплывающего окна
- Скройте галочку слева или измените ее размер
РЕДАКТИРОВАТЬ:
Я мог бы решить проблему с пустым пространством, но не с галочкой. Это все еще выглядит некрасиво.
Я изменил заполнение QComboBox следующим образом:
QComboBox {
padding: 0px 5px 0px 5px;
....
У меня все еще есть маленькая точка в левом верхнем углу, и я не знаю, как я могу это скрыть
4 ответа
Я тоже хотел скрыть галочку, но решение с QStyleFactory не сработало. Поэтому я обошел вокруг и нашел другое решение, которое помогло мне:
ui->comboBox->setItemDelegate(new QStyledItemDelegate());
Добавление этой строки ниже в SetStyleSheet может решить вашу проблему, у меня была такая же проблема, но теперь она решена.
combobox-popup: 0;
У меня та же проблема, но я все еще не могу найти решение, поэтому я изменяю стиль фабрики
#if defined(Q_OS_MAC)
ui->cb_action->setStyle(QStyleFactory::create("Windows"));
#endif
Работает с:
ui->cb_action->setStyle(QStyleFactory::create("Windows"));
... как предлагает виклин.