.BI "bool \fBduplicatesEnabled\fR - whether duplicates are allowed"
.br
.ti -1c
.BI "bool \fBeditable\fR - whether the combobox is editable"
.br
.ti -1c
.BI "Policy \fBinsertionPolicy\fR - the position of the items inserted by the user"
.br
.ti -1c
.BI "int \fBmaxCount\fR - the maximum number of items allowed in the combobox"
.br
.ti -1c
.BI "int \fBsizeLimit\fR - the maximum on-screen size of the combobox"
.br
.in -1c
.SH DESCRIPTION
The QComboBox widget is a combined button and popup list.
.PP
A combobox is a selection widget which displays the current item and can pop up a list of items. A combobox may be editable in which case the user can enter arbitrary strings.
.PP
Comboboxes provide a means of showing the user's current choice out of a list of options in a way that takes up the minimum amount of screen space.
.PP
QComboBox supports three different display styles: Aqua/Motif 1.x, Motif 2.0 and Windows. In Motif 1.x, a combobox was called XmOptionMenu. In Motif 2.0, OSF introduced an improved combobox and named that XmComboBox. QComboBox provides both.
.PP
QComboBox provides two different constructors. The simplest constructor creates an "old-style" combobox in Motif (or Aqua) style:
.PP
.nf
.br
QComboBox *c = new QComboBox( this, "read-only combobox" );
.br
.fi
.PP
The other constructor creates a new-style combobox in Motif style, and can create both read-only and editable comboboxes:
.PP
.nf
.br
QComboBox *c1 = new QComboBox( FALSE, this, "read-only combobox" );
.br
QComboBox *c2 = new QComboBox( TRUE, this, "editable combobox" );
.br
.fi
.PP
New-style comboboxes use a list box in both Motif and Windows styles, and both the content size and the on-screen size of the list box can be limited with sizeLimit() and setMaxCount() respectively. Old-style comboboxes use a popup in Aqua and Motif style, and that popup will happily grow larger than the desktop if you put enough data into it.
.PP
The two constructors create identical-looking comboboxes in Windows style.
.PP
Comboboxes can contain pixmaps as well as strings; the insertItem() and changeItem() functions are suitably overloaded. For editable comboboxes, the function clearEdit() is provided, to clear the displayed string without changing the combobox's contents.
A combobox emits two signals, activated() and highlighted(), when a new item has been activated (selected) or highlighted (made current). Both signals exist in two versions, one with a TQString argument and one with an \fCint\fR argument. If the user highlights or activates a pixmap, only the \fCint\fR signals are emitted. Whenever the text of an editable combobox is changed the textChanged() signal is emitted.
When the user enters a new string in an editable combobox, the widget may or may not insert it, and it can insert it in several locations. The default policy is is AtBottom but you can change this using setInsertionPolicy().
.PP
It is possible to constrain the input to an editable combobox using QValidator; see setValidator(). By default, any input is accepted.
.PP
If the combobox is not editable then it has a default focusPolicy() of TabFocus, i.e. it will not grab focus if clicked. This differs from both Windows and Motif. If the combobox is editable then it has a default focusPolicy() of StrongFocus, i.e. it will grab focus if clicked.
.PP
A combobox can be populated using the insert functions, insertStringList() and insertItem() for example. Items can be changed with changeItem(). An item can be removed with removeItem() and all items can be removed with clear(). The text of the current item is returned by currentText(), and the text of a numbered item is returned with text(). The current item can be set with setCurrentItem() or setCurrentText(). The number of items in the combobox is returned by count(); the maximum number of items can be set with setMaxCount(). You can allow editing using setEditable(). For editable comboboxes you can set auto-completion using setAutoCompletion() and whether or not the user can add duplicates is set with setDuplicatesEnabled().
.PP
.ce 1
.B "[Image Omitted]"
.PP
(Motif 1, read-only)
.br
.ce 1
.B "[Image Omitted]"
.PP
(Motif 2, editable)
.br
.ce 1
.B "[Image Omitted]"
.PP
(Motif 2, read-only)
.br
.ce 1
.B "[Image Omitted]"
.PP
(Windows style)
.PP
Depending on the style, QComboBox will use a QListBox or a QPopupMenu to display the list of items. See setListBox() for more information.
.PP
See also QLineEdit, QListBox, QSpinBox, QRadioButton, QButtonGroup, GUI Design Handbook: Combo Box, GUI Design Handbook: Drop-Down List Box, and Basic Widgets.
.SS "Member Type Documentation"
.SH "QComboBox::Policy"
This enum specifies what the QComboBox should do when a new string is entered by the user.
.TP
\fCQComboBox::NoInsertion\fR - the string will not be inserted into the combobox.
.TP
\fCQComboBox::AtTop\fR - insert the string as the first item in the combobox.
.TP
\fCQComboBox::AtCurrent\fR - replace the previously selected item with the string the user has entered.
.TP
\fCQComboBox::AtBottom\fR - insert the string as the last item in the combobox.
.TP
\fCQComboBox::AfterCurrent\fR - insert the string after the previously selected item.
.TP
\fCQComboBox::BeforeCurrent\fR - insert the string before the previously selected item.
.PP
activated() is always emitted when the string is entered.
.PP
If inserting the new string would cause the combobox to breach its content size limit, the item at the other end of the list is deleted. The definition of "other end" is implementation-dependent.
Constructs a combobox widget with parent \fIparent\fR called \fIname\fR.
.PP
This constructor creates a popup list if the program uses Motif (or Aqua) look and feel; this is compatible with Motif 1.x and Aqua.
.PP
Note: If you use this constructor to create your QComboBox, then the pixmap() function will always return 0. To workaround this, use the other constructor.
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
.PP
Replaces the item at position \fIindex\fR with the pixmap \fIim\fR and the text \fIt\fR.
.PP
See also insertItem().
.SH "void QComboBox::clear ()\fC [slot]\fR"
Removes all combobox items.
.SH "void QComboBox::clearEdit ()\fC [slot]\fR"
Clears the line edit without changing the combobox's contents. Does nothing if the combobox isn't editable.
.PP
This is particularly useful when using a combobox as a line edit with history. For example you can connect the combobox's activated() signal to clearEdit() in order to present the user with a new, empty line as soon as Enter is pressed.
Sets the text in the line edit to \fInewText\fR without changing the combobox's contents. Does nothing if the combobox isn't editable.
.PP
This is useful e.g. for providing a good starting point for the user's editing and entering the change in the combobox only when the user presses Enter.
.PP
See also clearEdit() and insertItem().
.SH "void QComboBox::setEditable ( bool )"
Sets whether the combobox is editable. See the "editable" property for details.
.SH "void QComboBox::setFont ( const QFont & font )\fC [virtual]\fR"
Sets the font for both the combobox button and the combobox popup list to \fIfont\fR.
Sets the combobox to use \fInewListBox\fR instead of the current list box or popup. As a side effect, it clears the combobox of its current contents.
.PP
\fBWarning:\fR QComboBox assumes that newListBox->text(n) returns non-null for 0 <= n < newListbox->count(). This assumption is necessary because of the line edit in QComboBox.
.SH "void QComboBox::setMaxCount ( int )\fC [virtual]\fR"
Sets the maximum number of items allowed in the combobox. See the "maxCount" property for details.
This property holds the text of the combobox's current item.
.PP
Set this property's value with setCurrentText() and get this property's value with currentText().
.SH "bool duplicatesEnabled"
This property holds whether duplicates are allowed.
.PP
If the combobox is editable and the user enters some text in the combobox's lineedit and presses Enter (and the insertionPolicy() is not NoInsertion), then what happens is this:
.TP
If the text is not already in the list, the text is inserted.
.TP
If the text is in the list and this property is TRUE (the default), the text is inserted.
.TP
If the text is in the list and this property is FALSE, the text is \fInot\fR inserted; instead the item which has matching text becomes the current item.
.PP
This property only affects user-interaction. You can use insertItem() to insert duplicates if you wish regardless of this setting.
.PP
Set this property's value with setDuplicatesEnabled() and get this property's value with duplicatesEnabled().
.SH "bool editable"
This property holds whether the combobox is editable.
.PP
This property's default is FALSE. Note that the combobox will be cleared if this property is set to TRUE for a 1.x Motif style combobox. To avoid this, use setEditable() before inserting any items. Also note that the 1.x version of Motif didn't have any editable comboboxes, so the combobox will change it's appearance to a 2.0 style Motif combobox is it is set to be editable.
.PP
Set this property's value with setEditable() and get this property's value with editable().
.SH "Policy insertionPolicy"
This property holds the position of the items inserted by the user.
.PP
The default insertion policy is AtBottom. See Policy.
.PP
Set this property's value with setInsertionPolicy() and get this property's value with insertionPolicy().
.SH "int maxCount"
This property holds the maximum number of items allowed in the combobox.
.PP
Set this property's value with setMaxCount() and get this property's value with maxCount().
.SH "int sizeLimit"
This property holds the maximum on-screen size of the combobox.
.PP
This property is ignored for both Motif 1.x style and non-editable comboboxes in Mac style. The default limit is ten lines. If the number of items in the combobox is or grows larger than lines, a scrollbar is added.
.PP
Set this property's value with setSizeLimit() and get this property's value with sizeLimit().