Стиль 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"));

... как предлагает виклин.

Другие вопросы по тегам