首页 > 编程学习 > 《Qt5+comboBox简单示例》

《Qt5+comboBox简单示例》

发布时间:2022/5/14 15:53:16

 comboBox组合框说明


comboBox组合框是一个显示当前项目的选择小部件,其实就是编辑框和下拉列表框的组合,占用的屏幕空间小,可以弹出可选项目列表,组合框可以包含像素图和字符串,组合框的项目内容可以添加和插入,也可以删除。

 

完整项目代码下载( 带图标)


链接:https://pan.baidu.com/s/1xsyZV1yPEEWOvs4vV_xGUg 
提取码:ataj 
CSDN下载:https://download.csdn.net/download/mars_xiaolei/11011617

 

 comboBox组合框使用示例


打开Qt,新建一个Qt Widgets Application项目,添加1个comboBox组合框、3个lineEdeit编辑框和2个pushButton按钮,修改控件的名字,然后添加代码如下。

mainwindow.h 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
public slots:
    void PrintText();
    void AddList();
    void InsertList();
private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QDebug"
#include "QStringList"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    setWindowTitle(tr("comboBox简单示例"));
    connect(ui->comboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(PrintText()));
    connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(AddList()));
    connect(ui->pushButton_2, SIGNAL(clicked(bool)), this, SLOT(InsertList()));

    //添加背景图片
    /*
    QPixmap pixmap(":/images/琴女.jpg");
    pixmap.scaled(QSize(ui->label_2->width(),ui->label_2->height()),Qt::KeepAspectRatioByExpanding);
    ui->label_2->setPixmap(pixmap);
    ui->label_2->show();
    */

    //设置编辑框只读
    ui->lineEdit->setReadOnly(true);
    
    /*
    QStringList text;
    text<<tr("苹果")<<tr("华为")<<tr("三星")<<tr("小米")<<tr("OPPO");
    ui->comboBox->addItems(text);
    */

    //此代码为添加图标
    /*
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),tr("苹果"));
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),tr("华为"));
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),tr("三星"));
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),tr("小米"));
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),tr("OPPO"));
    */

    //此代码为不添加图标
    ui->comboBox->addItem(tr("苹果"));
    ui->comboBox->addItem(tr("华为"));
    ui->comboBox->addItem(tr("三星"));
    ui->comboBox->addItem(tr("小米"));
    ui->comboBox->addItem(tr("OPPO"));
}

MainWindow::~MainWindow()
{
    delete ui;
}

//打印文本内容
void MainWindow::PrintText()
{
    int index=0;
    index=ui->comboBox->currentIndex();
    //打印文本内容
    qDebug()<<"实验记录:"<<ui->comboBox->itemText(index);
    //显示项目内容到编辑框
    ui->lineEdit->setText(ui->comboBox->itemText(index));
}

//在末尾添加
void MainWindow::AddList()
{
    //不带图标
    ui->comboBox->addItem(QIcon(":/images/phone.ico"),ui->lineEdit_2->text());
    //带图标
    //ui->comboBox->addItem(QIcon(":/images/phone.ico"),ui->lineEdit_2->text());
}

//在任意位置插入
void MainWindow::InsertList()
{
    int num=0;
    //将QString转换为int
    num=ui->lineEdit_3->text().toInt();
    //根据序号和文本内容插入,不带图标
    ui->comboBox->insertItem(num,ui->lineEdit_2->text());
    //根据序号和文本内容插入,带图标
    //ui->comboBox->insertItem(num,QIcon(":/images/phone.ico"),ui->lineEdit_2->text());
}
 

 

Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000