Wie stelle ich die Breite der QComboBox auf das größte Element ein?
Ich habe eine QComboBox
, dass ich füllen mit QString
mit:
comboBox->addItem(someString);
Wenn ich meine GUI-Anwendung für die Breite der comboBox ist immer 70, auch wenn das kleinste Element ist viel größer. Wie kann ich dynamisch festlegen der Breite einer QComboBox, zum Beispiel zu den größten QString innerhalb der comboBox?
Edit:
Nach einigen weiteren Tests habe ich die folgende Lösung gefunden:
//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);
Kommentar zu dem Problem
Auch, wenn Sie möchten, halten Sie die combo-box die gleiche Größe, aber erweitern Sie die dropdown-Breite zu passen, die längste Zeichenfolge, die Sie festlegen können, die die minimale Breite der view:
ui->sieveSizeComboBox->anzeigen()->setMinimumWidth(Breite);
InformationsquelleAutor der Frage Linoliumz | 2010-06-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Qt (4.6) online-Dokumentation hat dies zu sagen über
QComboBox
:Ich würde vorschlagen,
Gewährleistung der
SizeAdjustPolicy
tatsächlich genutzt wird,Einstellung des enum zu
AdjustToContents
. Wie Sie erwähnen eine.ui
Datei, die ich vorschlagen zu tun, dass in Designer. Normalerweise sollte es nicht nötig sein etwas Phantasie in Ihrem Konstruktor überhaupt über Dinge, die Sie in Designer.InformationsquelleAutor der Antwort rubenvb
Entsprechend der docs die Standard -
SizeAdjustPolicy
istAdjustToContentsOnFirstShow
so sind Sie vielleicht, es zu zeigen und dann Auffüllen?Entweder füllen Sie es zuerst, bevor es zu zeigen oder versuchen, die Einstellung der Politik zu
QComboBox::AdjustToContents
.Edit:
BTW ich gehe davon aus, dass Sie die
QComboBox
in ein geeignetes layout, zB.QHBoxLayout
, so dass die Größe Hinweis/Politik tatsächlich genutzt wird.InformationsquelleAutor der Antwort Troubadour