У меня есть a QComboBox
то, что я заполняюсь QString
использование:
comboBox->addItem(someString);
Когда я запускаю свое приложение GUI ширина QComboBox
всегда 70, даже если самый маленький объект намного больше. Как я могу динамично установить ширину a QComboBox
, например, к самому большому QString
в comboBox
?
Править:
После некоторого дальнейшего тестирования я нашел следующее решение:
// get the minimum width that fits the largest item.
int width = ui->sieveSizeComboBox->minimumSizeHint().width();
// set the ComboBoxe to that width.
ui->sieveSizeComboBox->setMinimumWidth(width);
Согласно docs по умолчанию SizeAdjustPolicy
равен AdjustToContentsOnFirstShow
, так что, возможно, вы показываете его, а затем заполняете?
Либо заполните его, прежде чем показывать, либо попробуйте установить для политики значение QComboBox :: AdjustToContents
.
Изменить:
Кстати, я предполагаю, что у вас есть QComboBox
в подходящем макете, например. QHBoxLayout
, чтобы фактически использовалась подсказка / политика размера.
В интерактивной документации Qt (4.6) говорится о QComboBox
:
enum SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLength, AdjustToMinimumContentsLengthWithIcon }
Я бы предложил
убедиться, что SizeAdjustPolicy
действительно используется
, устанавливая перечисление на AdjustToContents
. Когда вы упомянули файл .ui
, я предлагаю сделать это в Designer. Обычно в вашем конструкторе не должно быть ничего необычного, касающегося того, что вы делаете в Designer.