QT Combo Box 下拉对话框

目录

一、简介

二、ui界面设计

三、信号函数

四、常用的类成员函数


一、简介

Combo Box是Qt下拉菜单的控件。


二、ui界面设计

打开新建项目中的界面文件(**.ui)

向窗口中拖入一个Combo Box控件,双击Combo Box对象,添加下拉菜单的选项。

可以在属性编辑栏,编辑对象的属性。

          


三、信号函数

选中Combo Box,右键“转到槽”,里边有可选的槽函数。

目前,我只用到currentIndexChanged(QString/ int )以及currentTextChanged(QString)。

这两个函数的用法是:当Combo Box对象当前值发生改变时,会激发上面的信号函数。

下面,我们创建3个Combo Box对象,分别取名为:com_index_int、com_index_string、com_text。其下拉菜单选项分别为A1~A4,B1~B4,C1~C4。如下图所示:

然后依次选中,右键转到槽,分别选择currentIndexChanged(int)、currentIndexChanged(QString)、currentTextChanged(QString)。在mainwindow.cpp的槽函数中添加如下代码:

//若当前对象com_index_int值发生改变则触发此函数
void MainWindow::on_com_index_int_currentIndexChanged(int index)
{
    //将当前索引赋值给变量index,输出当前选项名
    index = ui->com_index_int->currentIndex();
    qDebug()<<"Index"<< index <<": "<< ui->com_index_int->currentText();
}

//若当前对象com_index_string值发生改变则触发此函数
void MainWindow::on_com_index_string_currentIndexChanged(const QString &arg1)
{
    //将当前选项名赋值给变量str,输出当前选项名
    QString str = ui->com_index_string->currentText();
    qDebug()<<"Text:"<< str;
}

//若当前对象com_index_string值发生改变则触发此函数
void MainWindow::on_com_text_currentTextChanged(const QString &arg1)
{
    //将当前选项名赋值给变量str,输出当前选项名
    QString str = ui->com_text->currentText();
    qDebug() <<"Text:"<< ui->com_text->currentText();
}

结果生成exe文件,当改变任意选项时,会调试信息输出:

 


四、常用类成员函数

           表格参考:https://blog.csdn.net/qq_21398167/article/details/47972825

item.count( ) 返回item数目
item.currentIndex( ) 返回当前返回索引(从0开始)
item.currentText( ) 返回当前选择内容
item.itemText(index) 返回当前index的内容
item.setCurrentIndex( index ) 设置index为当前选择
setEditable( true ) 设置选框可编辑
setEditText( string ) 设置编辑框内容
setItemText( index,string) 设置index内容为string

其余的还有插入,清除,添加item项的函数,在ui界面上设置更为便捷,以后有用到再更新。

//在ui界面添加一个push Button,转到槽,clicked();
//在槽函数内添加一下内容

void MainWindow::on_pushButton_clicked()
{
    int index_count = ui->com_index_int->count();
    qDebug()<<"该item数目为:"<<index_count;

    ui->com_index_int->setCurrentIndex(1);
    qDebug()<<"当前item项索引为:"<<ui->com_index_int->currentIndex();
    qDebug()<<"当前索引所指内容为;"<<ui->com_index_int->currentText();

    qDebug()<<ui->com_index_int->itemText(2);

    ui->com_index_int->setEditable(true);
    ui->com_index_int->setItemText(3,"AAA");
}

运行,点击pushButton,com_index_int变为了可编辑的状态,结果如下:

                       

猜你喜欢

转载自blog.csdn.net/qq_29406323/article/details/81355149