Настройка QComboBox

Я хочу настроить QComboBox, Поведение, которое я хотел бы видеть, - это поле со списком, в котором кнопка (стрелка вниз) занимает всю область поля со списком, когда оно свернуто. я знаю это QComboBox это QPushButton с QListWidget (или какой-то другой виджет). Я хотел бы изменить QPushButton занять всю площадь. Я также хотел бы избавиться от области, где отображается текущий выбор. Любые советы будут оценены!

Вот что я хочу:

Я могу контролировать ширину выпадающего списка через QComboBox::view()->setMinimumWidth(), Таким образом, у меня может быть более узкое поле со списком, но гораздо более широкий выпадающий список. Эта часть сделана. Теперь мне нужно просто иметь кнопку там.

2 ответа

Решение

Настройка QComboBox Кнопка, фактически стрелка вниз, может быть выполнена с помощью стиля, используя down-arrow стиль, однако, так как вы хотите, чтобы выделение не было видно, вам нужно позаботиться о других настройках, ширине поля со списком и drop-down должно, вероятно, точно соответствовать вашему изображению, пример стиля для достижения этого:

QComboBox::down-arrow {
    image: url(arrow.png); /* Set combobox button */
}

QComboBox::drop-down {
    width: 20px;  /* set the width of the drop down */
}

QComboBox {
    border: 0px;
    max-width: 20px; /* width of whole box */
}

ОК, так что это очень возможно с помощью таблиц стилей. Вот что я сделал:

QComboBox::setStyleSheet(
QComboBox::down-arrow {
image: url(:/images/add_support_combo_box.png);
left: -50px;
top: -10px;
width: 500px;
height : 200px;}");

Если вы видите, "слева" и "сверху" имеют отрицательные значения. Это заставляет изображение стрелки вниз двигаться влево и вверх.

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