Как изменить длину выпадающего списка QComboBox, сохранив неизменной исходную длину поля?

#c #qt

#c #qt

Вопрос:

введите описание изображения здесь

Как получить верхнюю половину изображения, но не нижнюю половину?

 int width = ui->comboBox->minimumSizeHint().width();
ui->comboBox->setMinimumWidth(width);
 

Этот метод изменит длину исходного поля вместе.

Ответ №1:

Таким образом, все достижимо с помощью таблицы стилей:

 ui->comboBox->setStyleSheet("QComboBox QAbstractItemView {min-width: 1000px;}");
 

Этот код изменяет только минимальную ширину выпадающего списка.

QComboBox изменен

Комментарии:

1. Это очень полезно!

Ответ №2:

если я правильно думаю, вы хотите изменить список элементов, который откроется при нажатии на область поля со списком? размер области списка элементов автоматически будет изменен на размер содержимого, и вы должны установить максимальную ширину вместо минимальной ширины.

Комментарии:

1. Если я установлю максимальную ширину, то выпадающий список не изменится. Функция setMinimumWidth, похоже, изменяет ширину выпадающего списка вместе, и я только хочу изменить ширину выпадающего списка

2. в нашем приложении это нормально, и выпадающая панель изменяется на все содержимое. возможно, родитель заставляет их изменять размер выпадающего списка. создайте простой проект с графическим интерфейсом и проверьте их, если все еще измените размер выпадающего списка в соответствии с максимальной шириной, возможно, вам потребуется обновить версию qt. Я тестировал их на Qt 5.15