Настройка QComboBox - PullRequest
       16

Настройка QComboBox

0 голосов
/ 29 июня 2018

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

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

enter image description here

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

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

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

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

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

0 голосов
/ 29 июня 2018

Установка кнопки 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 */
}
...