2.4.2 comboBox drop-down box
QComboBo provides a drop-down option in the form of a list for users to display, saving screen space. The data in the drop-down combo box can be modified and edited, and can contain pictures and string text. The font selection box, font size selection box and color selection box in Word document software are implemented by ComboBo.
Create a QComboBo example
QComboBox *box=new QComboBox(this); box->addItem("Option 1"); box->addItem("Option 2");
Figure 2-4-3 QComboBo effect diagram
The following describes the common member functions of QComboBo
1. Add entry information
void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant()) void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant()) void QComboBox::addItems(const QStringList &texts)
addItem is an overloaded function. You can add string text alone or add icons.
2. Return the number of all entries
int count() const
3. Set the icon size displayed in the option box
QSize iconSize() const void setIconSize(const QSize & size)
4. Return the icon or string of the specified entry
QString QComboBox::itemText(int index) const QIcon QComboBox::itemIcon(int index) const
5. Set the icon and text for the specified entry
void QComboBox::setItemIcon(int index, const QIcon & icon) void QComboBox::setItemText(int index, const QString & text)
6. Set whether the option can be edited
bool isEditable() const void setEditable(bool editable)
By default, this property is false and cannot be edited.
7. Set the text displayed in the current edit box
QString currentText() const //Returns the string text of the current edit box void setCurrentText(const QString &text) //Sets the currently displayed string text
The premise of using the currentText property is that the current QComboBox must support the text property (setCurrentText(true)).
8. Set the maximum number of entries supported by QComboBox. The default is 2147483647
int maxCount() const void setMaxCount(int max)
9. Set the display text and icon of the specified option
void setItemText(int index, const QString &text); void setItemIcon(int index, const QIcon &icon); void setItemData(int index, const QVariant &value, int role = Qt::UserRole);
int Index represents the index value of the entry option. The index starts at 0.
10. Insert new entry options
void insertItem(int index, const QString &text, const QVariant &userData = QVariant()); void insertItem(int index, const QIcon &icon, const QString &text,const QVariant &userData = QVariant()); void insertItems(int index, const QStringList &texts);
int Index represents the index value of the entry option.
QComboBox common slot function
|
QComboBox common signals
1.editTextChanged signal: sent when the text of the edit box changes (QComboBox needs to be editable). The formal parameter saves the changed new text.
void editTextChanged(const QString &);
2.activated signal: sent when the user selects an option in the drop-down list box. Parameter saves the node index value or text of the selected option.
void activated(int index); void activated(const QString &text)
Note: the activated signal will be sent even if the selected option has not changed (this selection is the same as the previous selection).
3.currentTextChanged signal: issued when the text of the edit box changes. The formal parameter saves the changed new text.
void currentTextChanged(const QString &text)
Note: this signal corresponds to the currentText property
4.currentIndexChanged signal: issued when an option is clicked. Parameter saves the node index value or text of the selected option.
void currentIndexChanged(int index) void currentIndexChanged(const QString &text)
Note: if the option is not changed (this selection is the same as the previous selection), the currentIndexChanged signal will not be sent.
5.highlighted signal: when the cursor selects an option, it is sent out without clicking the option. Parameter saves the node index value or text of the selected option.
void highlighted(int index) void highlighted(const QString &text)
The following is a simple application example of QComboBox (supporting program No. CH2-9).
1.widget.ui design interface
Figure 2-4-4 UI design interface
2.widget.cpp code
#include "widget.h" #include "ui_widget.h" #include <QComboBox> #include <QDebug> #include <QMessageBox> #include <QIcon> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QStringList list; //Create machine status list ui->comboBox_state->addItem(QIcon(":/start.ico"),"Start running"); ui->comboBox_state->addItem(QIcon(":/suspend.ico"),"suspend"); ui->comboBox_state->addItem(QIcon(":/stop.ico"),"stop it"); //Create a list of accounts to be selected list<<"1126626497"<<"1186628498"<<"525474550"; ui->comboBox_number->addItems(list); //Add displayed entries ui->comboBox_number->setEditable(true); //Set options editable properties //Set password display mode ui->lineEdit_password->setEchoMode(QLineEdit::Password); } Widget::~Widget() { delete ui; } //Start connection void Widget::on_pushButton_connect_clicked() { //In practical application, it can be encrypted through QCryptographicHash class QString password_info; password_info+=tr("account number:"); password_info+=ui->comboBox_number->currentText(); password_info+="\n"; password_info+=tr("password:"); password_info+=ui->lineEdit_password->text(); password_info+="\n"; QMessageBox::information(this, tr("login information"), password_info,QMessageBox::Ok); }
3. Operation effect
Figure 2-4-5 example of qcombobox operation effect