I have a QComboBox
that I fill with QString
using:
comboBox->addItem(someString);
When I start my GUI application the width of the QComboBox
is always 70, even if the smallest item is much larger. How can I dynamically set the width of a QComboBox
, for instance, to the largest QString
within the comboBox
?
Edit:
After some further testing I found the following solution:
// 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);
Qt (4.6) online documentation has this to say about QComboBox
:
enum SizeAdjustPolicy { AdjustToContents, AdjustToContentsOnFirstShow, AdjustToMinimumContentsLength, AdjustToMinimumContentsLengthWithIcon }
I would suggest
ensuring the SizeAdjustPolicy
is actually being used
setting the enum to AdjustToContents
. As you mention a .ui
file I suggest doing that in Designer. Normally there shouldn't be anything fancy in your constructor at all concerning things you do in Designer.
According to the docs the default SizeAdjustPolicy
is AdjustToContentsOnFirstShow
so perhaps you are showing it and then populating it?
Either populate it first before showing it or try setting the policy to QComboBox::AdjustToContents
.
Edit:
BTW I'm assuming that you have the QComboBox
in a suitable layout, eg. QHBoxLayout
, so that the size hint/policy is actually being used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With