Qt5教程:QComboBox下拉列表框

这篇具有很好参考价值的文章主要介绍了Qt5教程:QComboBox下拉列表框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要:  #include<QComboBox>

win.h

#ifndef WIN_H
#define WIN_H

#include <QWidget>
#include <QComboBox>  //下拉列边框类
#include <QDebug>

class Win : public QWidget
{
    Q_OBJECT

public:
    Win(QWidget *parent = nullptr);
    ~Win();

    QComboBox* combobox;//  定义下拉列表框指针对象
    int i;
    QStringList strList;
    QString t;



public slots:  //槽标记
    void slotFunc(int);  //选项变化事件currentIndexChanged槽函数
    void slotFunc1(QString);
    void slotFunc3(int);
    void slotFunc4(QString);



};
#endif // WIN_H

win.cpp

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓

#include "win.h"

Win::Win(QWidget *parent)
    : QWidget(parent)
{
    this->resize(300,300);

    combobox = new QComboBox(this);  // 创建下拉列表框指针对象
    combobox ->setGeometry(10,10,100,30);//设置控件的位置和高宽


    combobox->setMaxCount(4); //设置最大存储项目总数
    //达到指定项目总数后,不能再添加
    combobox->addItem(tr("圆"),1);//添加项目
    //参数1  项目-必须是文本
    //参数2  用户附加数据-任何类型--可以无

    combobox->addItem(QIcon(":/Q/tu/2.png"), "正方形",2);//添加项目--带图标
    //参数1:资源路径--资源文件qrc中的资源
    //参数2:项目
    //参数3:用户附加数据

    combobox->addItem(tr("长方形"),3);
    combobox->addItem(tr("五角星"),4);
    combobox->addItem(tr("棱形"),5);
    //说明:由于setMaxCount(4),此项不会加入

    i=combobox->maxCount(); //返回最大可存储项目总数
    qDebug()<<"最大可存储项目总数:"<<i;
    combobox->setMaxVisibleItems(3);//设置下拉框可见的项目总数
    i=combobox->maxVisibleItems();//返回可见的项目总数
    qDebug()<<"可见的项目总数:"<<i;

    combobox->insertSeparator(2);//插入分割线
    //参数:分割线的索引

    //combobox->clear(); //清空所有项目
    i=combobox->count(); //获取项目总数--包括分割线
    qDebug()<<"项目总数:"<<i;
    combobox->setMaxCount(10);
    combobox->setMaxVisibleItems(6);
    combobox->insertItem(4,QIcon(":/Q/tu/4.png"),"规则",10);
    //参数1:插入位置索引号
    //参数2:图标--可以省略
    //参数3:项目文本
    //参数4:附加数据

    strList << "李明" << "中国人" << "教师";
    combobox->addItems(strList);//一次性添加多个项
    combobox->removeItem(2); //删除指定索引项目
    combobox->setFont(QFont("宋体",10));//设置字体


    //********选项变化事件currentIndexChanged()
    //无论更改是通过编程方式还是通过用户交互完成的,currentIndexChanged()总是被触发
    connect(combobox,SIGNAL(currentIndexChanged(int)),this,SLOT(slotFunc(int)));
    //参数:传递选项变化后当前的索引号

    connect(combobox,SIGNAL(currentIndexChanged(QString)),this,SLOT(slotFunc1(QString)));
    //参数:传递选项变化后当前的项目文本


    //*************处理激活事件activated()
    //如果组合框的当前项发生变化,会发出信号activated(),仅在更改是由用户交互引起的时候才被触发
    connect(combobox,SIGNAL(activated(int)),this,SLOT(slotFunc3(int)));
    connect(combobox,SIGNAL(activated(QString)),this,SLOT(slotFunc4(QString)));

    //currentTextChanged  当前的文本内容发生改变时
    //editTextChanged  编辑的文本发生改变时
    //highlighted   高亮发生改变时--在下拉列表框中鼠标所选的项目发生变化时



    combobox->setItemIcon(0,QIcon(":/Q/tu/1.png"));  //给指定索引项目设置图标
    combobox->setItemText(2,"矩形"); //给指定索引项目设置文本---原有文本被覆盖

    combobox->setCurrentIndex(2);//指定当前项目--默认是第0项目
    //参数:索引号
    combobox->setCurrentText("李明");//根据文本指定当前项目
    //如果参数所指的项目不存在的话就无效

    combobox->setEditable(true);//编辑框能否被编辑
    //在编辑框中编辑文本回车之后,会追加到项目尾部

    bool b=combobox->isEditable();//返回能否被编辑
    qDebug()<<"能否被编辑:"<<b;

    combobox->setEditText("广东");//设置编辑框中的文本
    //只有setEditable设为True,setEditText才有效
    //按了回车键 会追加到项目尾部

    combobox->setDuplicatesEnabled(true);//是否可重复
    //设置为true时,编辑框按回车时追加的项目可以重复

    b=combobox->duplicatesEnabled();//返回是否可重复
    qDebug()<<"是否可重复:"<<b;

    combobox->setFrame(false);//是否有框架--是否有外框
    //setEditable 设置为True时 setFrame才有效果

    b=combobox->hasFrame();//返回是否有框架
    qDebug()<<"是否有框架:"<<b;

    combobox->setEditable(false);

    combobox->setIconSize(QSize(20,20));//设置图标尺寸

    QSize s=combobox->iconSize();//返回图标尺寸
    qDebug()<<"图标尺寸:"<<s;




}

Win::~Win()
{
}

void Win::slotFunc(int ii) //选项变化事件currentIndexChanged槽函数
{
    qDebug()<<"项目变化了,当前选项索引号:"<<ii;
    i = combobox->currentIndex();  // 获取当前项目的索引
    qDebug()<<"当前选项索引号="<<i;
    t=combobox->currentText();  //取当前项目的文本
    qDebug()<<"当前选项文本="<<t;
    QVariant v=combobox->currentData();  //获取当前项目的用户附加的数据
    //注意返回的数据类型
    int n=v.value<int>(); //以int类型返回v中的值
    qDebug()<<"当前选项附加的数据="<<n;

    v=combobox->itemData(2);//获取指定索引项目的用户附加的数据
    //注意返回的数据类型
    n=v.value<int>(); //以int类型返回v中的值
    qDebug()<<"当前选项附加的数据=="<<n;

    t=combobox->itemText(3);//获取指定索引项目的文本
    qDebug()<<"指定索引项目的文本=="<<t;



    //QString j = typeid(combobox->itemText(3)).name();
    //qDebug()<<"j="<<j;




}

void Win::slotFunc1(QString test)
{
    qDebug()<<"项目变化了,当前选项项目是:"<<test;
}

void Win::slotFunc3(int ii)
{
    qDebug()<<"项目变化了activated,当前选项索引号:"<<ii;
}

void Win::slotFunc4(QString test)
{
    qDebug()<<"项目变化了activated,当前选项项目是:"<<test;
}

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓文章来源地址https://www.toymoban.com/news/detail-510861.html

到了这里,关于Qt5教程:QComboBox下拉列表框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT实现多级下拉列表导航菜单,可折叠(QTreewidget实现)

    目录 创建多级列表 在ui中拖入一个QTreewidget控件。 双击该控件,打开编辑树窗口部件。​编辑​编辑 进行列表控件设置: 在项目前添加图标: 效果: QT实现多级下拉列表,可折叠 做项目的时候需要实现一个可折叠的多级下拉列表,用QTreewidget就可以实现,而且直接在ui文件

    2024年02月16日
    浏览(52)
  • 【Qt5.12】Qt5.12安装教程[通俗易懂]

    Qt5.12下载网址: Index of /archive/qt/5.12/5.12.2 选择Windows平台, Linux和Mac平台类似 下载好之后的安装包: Step1: 双击安装包, 稍等片刻, 然后点击next Step2: 如果没有账号, 则选择skip Step3: Qt设置欢迎界面, 选择下一步 Step4: 选择安装路径 Step5: 选择组件, 然后选择下一步 Step6: 同意许可协议

    2024年02月13日
    浏览(46)
  • 【Qt】Qt5.12.12安装教程详解

    Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,对于不了解 C++ 的读者,我建议先阅读《

    2024年02月13日
    浏览(40)
  • QT5教程-搭建自己的人机交互界面(附代码)(一):QT5安装与环境配置

    本教程目的在于记录自己开发QT项目的学习过程。 适合刚刚接触QT的初学者 。鉴于个人水平有限,必定错误频出,请各位前辈多多指教。 使用QT5.9.9作为开发工具,开发环境为Ubuntu20.04,图形传输需要安装Opencv4.5.5和FFmpeg。消息传输需要配置mqtt模块。 教程要求学习者对C++有基

    2024年02月11日
    浏览(69)
  • Python Qt5 入门教程

    Python Qt5是一个强大的GUI工具包,可以用来设计各种桌面应用程序,包括图形用户界面、数据库应用程序等。本教程将带你入门Python Qt5,从安装开始到图形界面的设计以及常见的控件和事件。 Python Qt5需要使用PyQt5库,首先需要安装PyQt5库。在使用pip命令安装之前,需要先确保

    2023年04月15日
    浏览(35)
  • Python QT5设计UI界面教程

    简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。博文为:使用Python PyQt5实现一个简单的图像识别软件;页面效果如下: 1.设计菜单栏 Containers——Tab Widget; 2.横向排布  可以自动水平对齐 3.文本框和选择框 4.日期输入

    2024年01月17日
    浏览(46)
  • VsCode+QT5.14.2安装部署详细教程

    1、下载QT 注意事项 : 最好不要选择在线安装包,我安装了两天!!!快安装完成了结果是一个什么签名还是密码提示不识别。 从Qt 5.15开始,开源离线安装程序不再可用。官网原文如下:   Due to The Qt Company offering changes, open source offline installers are not available any more since Q

    2024年02月04日
    浏览(52)
  • Qt5.14.2安装教程和VS2019中的qt环境配置

    Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 还存在 Python、Ruby、Perl 等脚本语言的绑定, 也就是说可以使用脚本语言开发基于

    2024年02月07日
    浏览(51)
  • QT5学习教程一——Hello World例子

    一、打开 Qt Creator -文件-新建文件或项目-Application-Qt Widgets Application-选择,如图 1.1  图 1.2 将项目放到指定目录,便于管理。单击[下一步]  选择构建的环境,可以根据自己的配置来选择,本例子选择MSVC2015。MSVC是指微软的VC编译器。MinGW是指是Minimalist GNU on Windows的缩写。它是

    2023年04月16日
    浏览(33)
  • VS2022+QT5.13.2环境配置及安装测试教程

    (1)visual Studio2022下载链接:https://visualstudio.microsoft.com/zh-hans/?rr=https://www.microsoft.com/zh-cn/ (2)下载完成后,打开VisualStudioSetup,点击继续,选择以下模块。 `(1)通过路径下载qt5.13.2,https://download.qt.io/archive/qt/5.13/5.13.2/ (2)下载完毕后,打开软件,点击Next。如果有QT账号,

    2024年02月15日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包