Qt 可编辑下拉菜单(QComboBox) demo

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

Qt 可编辑下拉菜单(QComboBox) demo

1、创建并初始化一个QComboBox对象

在[0]索引位置上设置一个特殊的标记值custom表示可以自定义输入数据

    comboBox2 = new QComboBox(this);
    comboBox2->setGeometry(100,100,200,100);
    QStringList params;
    params<<"custom"<<"5600"<<"57600"<<"115200"<<"128000"<<"256000"<<"921600";
    comboBox2->addItems(params);//将这些数据加入到comboBox中
    comboBox2->setDuplicatesEnabled(true);//设置可以输入重复值(非必须选项)
    comboBox2->setCurrentIndex(6);//设置默认选中项

2、为comboBox编写信号槽函数

mainwindow.h:


class MainWindow : public QMainWindow
{
    Q_OBJECT

....

private slots:
    void on_comboBox_currentIndexChangedIndex(int index);

    void on_comboBox_currentIndexChangedText(const QString &arg1);

....
};

mainwindow.cpp:

void MainWindow::on_comboBox_currentIndexChangedIndex(int index)
{
    //判断是否选中[0]索引项custom
    //是则使能编辑、设置当前框内为空字符
    //否则禁能编辑,只能选择而不可编辑
    if(index == 0){
        comboBox2->setEditable(true);
        comboBox2->setCurrentText("");
    }else{
        comboBox2->setEditable(false);
    }
}

void MainWindow::on_comboBox_currentIndexChangedText(const QString &arg1)
{
    qDebug()<<"选择"<<arg1;
}

3、绑定槽函数

由于QComboBox::currentIndexChanged是重载方法,参数不同导致Qt5语法不能正确绑定,所以使用下列方法进行绑定
mainwindow.cpp:

    connect(comboBox2,static_cast<void (QComboBox::*)(int index)>(&QComboBox::currentIndexChanged),this,&MainWindow::on_comboBox_currentIndexChangedIndex);
    connect(comboBox2,static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),this,&MainWindow::on_comboBox_currentIndexChangedText);

完整代码:

mainwindow.h:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QMainWindow>
#include <QString>
#include <QDebug>
#include <QLabel>
#include <QPushButton>
#include <QObject>
#include <QByteArray>
#include <QComboBox>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    QComboBox * comboBox2;

private slots:
    void on_comboBox_currentIndexChangedIndex(int index);

    void on_comboBox_currentIndexChangedText(const QString &arg1);


    

private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

mainwindow.cpp:文章来源地址https://www.toymoban.com/news/detail-403101.html

#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    comboBox2 = new QComboBox(this);
    comboBox2->setGeometry(100,100,200,100);
    QStringList params;
    params<<"custom"<<"5600"<<"57600"<<"115200"<<"128000"<<"256000"<<"921600";
    comboBox2->addItems(params);
    comboBox2->setDuplicatesEnabled(true);
    comboBox2->setCurrentIndex(6);
    params.clear();
    connect(comboBox2,static_cast<void (QComboBox::*)(int index)>(&QComboBox::currentIndexChanged),this,&MainWindow::on_comboBox_currentIndexChangedIndex);
    connect(comboBox2,static_cast<void (QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),this,&MainWindow::on_comboBox_currentIndexChangedText);
}

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


void MainWindow::on_comboBox_currentIndexChangedIndex(int index)
{
    if(index == 0){
        comboBox2->setEditable(true);
        comboBox2->setCurrentText("");
        //comboBox2->setItemText(0,"");
    }else{
        comboBox2->setEditable(false);
        //comboBox2->setItemText(0,"custom");
    }
}

void MainWindow::on_comboBox_currentIndexChangedText(const QString &arg1)
{
    qDebug()<<"选择"<<arg1;
}



到了这里,关于Qt 可编辑下拉菜单(QComboBox) demo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Qt QComboBox之setEditable和currentTextChanged及其源码分析

    Qt QComboBox之setEditable和currentTextChanged及其源码分析

    最近做了一个QComboBox里有选项,然后选中选项之后就会自动触发条件搜索。然后我发现,在我初始化comboBox时,由于信号连接的原因会触发这个currentTextChanged信号。代码大致如下: 在我每一次对页面进行切换的时候,我发现这个 search 都会触发这个 slot_pageSearch 槽函数,然后执

    2023年04月14日
    浏览(7)
  • 【日常收支账本】【Day04】优化编辑动账记录的操作——QTableWidget单元格设置QComboBox控件

    【日常收支账本】【Day04】优化编辑动账记录的操作——QTableWidget单元格设置QComboBox控件

    https://github.com/LinFeng-BingYi/DailyAccountBook 为表格中以下字段设置选项列表: 1. 需求强度(由\\\"基本需求\\\"更名) 温饱:基本维持生存且不铺张浪费的消费行为 小康:在温饱的基础上,可以使生活变得比较舒适的消费行为 奢华:可有可无的,或超出自身消费水平的消费行为 该属性

    2024年02月08日
    浏览(12)
  • bootstrap 导航栏下拉菜单,居右下拉菜单

    bootstrap 导航栏下拉菜单,居右下拉菜单

     缩放300% 样式还是很好看的

    2024年02月09日
    浏览(13)
  • 04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit

    04-5_Qt 5.9 C++开发指南_QComboBox和QPlainTextEdit

    QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个QLineEdit 用作输入。OComboBox 除了显示可见下拉列表外,每个项 (item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。 QPlainTextEdit 是一个多行文本编辑器,用于显示

    2024年02月14日
    浏览(14)
  • 【CSS 14】dropdowns 下拉菜单 下拉式图像 下拉式导航

    dropdowns 下拉菜单 使用 CSS 创建可悬停的下拉列表 基础的下拉菜单 创建当用户将鼠标移到元素上时出现的下拉框 下拉式菜单 创建一个下拉菜单,并允许用户从列表中选择一个选项 本例与上例相似,除了我们在下拉框内添加链接并为其设置了样式,以此匹配下拉按钮的样式

    2024年02月12日
    浏览(42)
  • HTML/CSS 如何做下拉框(下拉菜单)?

    下拉菜单通常使用在鼠标过程中,当鼠标悬停是出现一个下拉的菜单。 详细操作如下: 总结: 做下拉框,最重要的一点就是要使用 position:relative; 找好基准!

    2024年02月11日
    浏览(11)
  • 前端vue自定义简单实用下拉筛选 下拉菜单

    前端vue自定义简单实用下拉筛选 下拉菜单, 阅读全文下载完整代码请关注微信公众号: 前端组件开发 效果图如下:       #### 使用方法 ```使用方法 !-- titleArr: 选择项数组 dropArr: 下拉项数组 @finishDropClick: 下拉筛选完成事件-- ccDropDownMenu :titleArr=\\\"titleArr\\\" :dropArr=\\\"dropArr\\\" @finishDro

    2024年02月08日
    浏览(11)
  • 修改element ui的导航菜单样式,包括下拉菜单

    修改element ui的导航菜单样式,包括下拉菜单

    第一次使用element ui,根据项目需求,选择了NavMenu导航菜单,  Element - The world\\\'s most popular Vue UI framework  首先将代码复制粘贴到vue组件的template/template目标位置,修改相关信息,顺利完成。 但实际目标需求样式不一致,需要修改字体大小和块大小,尝试用添加class,style中添加

    2024年02月16日
    浏览(49)
  • 如何使用CSS实现一个下拉菜单?

    如何使用CSS实现一个下拉菜单?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月13日
    浏览(10)
  • uniapp微信小程序 --下拉菜单

    uniapp微信小程序 --下拉菜单

    就是原生写这个本来就是一件很简单的事情,但是uniapp里面不支持selct,他封装了东西应该是,插件市场试了好几个也不太行。最后还是找到一个博主的写的很好,记录一下。 这是封装好的需要什么样式自己调整 使用 博主地址附上https://www.cnblogs.com/OrochiZ-/p/15910440.html

    2024年03月26日
    浏览(12)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包