QT实现可编辑组合框

Qt自定义Combox(类似单选按钮功能) Qt自定义控件学习–Combox问题由来:近期又继续Qt项目,对于combox有一个奇怪的需求: - combox中文本框文字始终显示为1 - 下拉后,combox list中需要显示2,3;其中2,3为1的一个子选项 - 当选择2,3时执行相应的操作 例: 选择: -选择选中 -选择所有即,下面两个选项为上面的子选项。 由于大部分都和Combox行为类似,所以想复用Combox。QCo 阅读详情

1.应用场景描述:在使用QComboBox对列表中的内容进行选择的同时能够修改item项(一般来说不应该出现这样的需求,既然使用QComboBox,那么就应该是对已设定好内容进行选择,实际应用中最好再重新设计功能模块)。

2.实现:

(1)首先在QTCreator中很容易能够发现QComboBox有一个属性editable,设置为true后发现QComboBox中的当前项变成了像lineEdit一样的可编辑状态,查阅API文档得知,QComboBox本身就提供了lineEdit方法来获取用来编辑item项的lineEdit,前提是设置editable属性为true。

(2)知道了如何编辑item项,那么编辑之后如何将编辑内容保存到QComboBox中并替换原先的item项呢?实现逻辑很简单,将编辑内容插入到当前项之前,再把原先项删除就可以了,这样还可以保证替换之后项和之前的顺序一致。但是何时触发该逻辑呢?即判断用户输入完毕的条件是什么?自然而然想到,应该在QComboBox失去鼠标焦点的时候进行触发。但是查阅文档并没有发现提供失去鼠标焦点的信号,只有一个相似的editTextChanged信号,该信号在组合框中的lineEdit内容发生改变时触发,显然该信号并不适合。查阅资料得知,可通过重写QWidget的focusInEvent(focusOutEvent)方法来实现对组件获取鼠标焦点事件的捕获,但是这样还要再增加一个类比较麻烦。QWidget提供了eventFilter(QObject * watched,QEvent event)对注册了过滤器的组件的所有事件进行捕获,通过对事件进行判定我们就能够得到失去焦点事件。伪代码如下

class obj
{
    void function()
    {
       QComboBox comb;
       comb.installEventFilter(this);
    }

    bool eventFilter(QObject *obj,QEvent *event)
    {
        if(obj == ui.comb)    
        {
            if(event->type()==QEvent::FocusOut)
            {
                //插入新item
                //删除原先旧item
            }

        }
    }
}

(3)接下来还有最后一个小细节:插入item之后,旧item的索引是多少呢?答案是不变!不清楚QComboBox的内部实现机制,但是这个通过代码可以简单求证。最后插入新irem和删除旧item的代码看起来如下:(尽管看起来有些怪异)

ui.comboBox.insertItem(ui.comboBox->currentIndex(),ui.comboBox->lineEdit()->text());
ui.comboBox.removeItem(ui.comboBox->currentIndex());

 

QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等) 前言: QT设计界面时,难免会遇到修改QCobobox样式的问题。相比于其他的QLabel、QPushButton等控件,QCobobox的样式设置明显困难并复杂很多。以下介绍一下目前为止,本人参考网上代码,制作的一款QCobobox下拉框的样式风格。 效果图: 基础样式表: /*QCombobox主体*/ QComboBox { border: 2px solid #f3f3f3;/*设置线宽*/ background-color: rgb(237, 242, 255);/*背景颜色*/ 阅读详情

相关推荐

Qt组合框详解与GUI开发实战

QComboBox 是 Qt 框架中用于实现下拉选择功能的重要控件,广泛应用于图形用户界面开发中。它结合了文本输入框与下拉列表的功能,允许用户从预设选项中选择,也可设置为可编辑模式以支持自定义输入。在用户界面设计中,QComboBox 常用于配置项选择、状态切换、枚举值选取等场景,显著提升用户交互效率与界面整洁度。其核心结构包含可点击展开的下拉箭头、显示当前选中项的文本区域,以及由 QListWidget 或模型驱动的下拉菜单。

weixin_42356162的博客 818

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

Qt可用的可编辑下拉框,在特定情况下可选编辑,默认为下拉选择框,适用于串口波特率设定、可变参数设定等情形

weixin_42829652的博客 3942

【华为鸿蒙3.0/荣耀安卓12使用VMOS Pro的激活方式】

解压激活工具 →连接数据线 轻松搞定激活!

Amy_mumu的博客 142万+

QT中的combo box控件的使用

QT中的combo box控件的使用

liuyanguang666的博客 6947

RK3588 MPP视频编码实战:从环境搭建到高效封装

本文详细介绍了在RK3588平台上利用MPP(Media Process Platform)进行硬件视频编码的完整实战流程。从MPP库的环境搭建、编译安装,到核心编码参数(如码率控制、GOP、图像对齐)的深入解析,并提供了一个可复用的C++编码器类封装方案,帮助开发者快速实现高效的H.264/H.265视频编码,显著降低CPU占用。

weixin_29192211的博客 349

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 383

QComBobox可编辑

QComBobox可编辑

ycf623106997的博客 1459

自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

自动驾驶仿真三—— 基于PreScan&Simulink的AEB系统仿真1. AEB自动紧急制动系统1. 1 TTC碰撞时间模型1. 2 C-NCAP法规部分术语与定义1. 3 主动安全ADAS系统试验项目2. AEB仿真分析建模2.1 搭建场景2.2 传感器建模2.3 添加AEB控制系统3. 典型工况仿真3.1 CCRs仿真测试3.1 CCRm仿真测试4. 参考学习的书目教材 博主前面的博文已经介绍了Prescan&Simulink基本的场景建模及仿真分析流程,《自动驾驶仿真 (二)——

zhudj08的博客 1万+

【QT】 QComboBox实现可下拉可编辑

1.设置可编辑模式 comboBox->setEditable(true); 2.设置可编辑模式后,可以获取comboBox里QLineEdit 指向comboBox对应的QLineEdit,注意非可编辑模式,该对象为NULL comboBox->lineEdit() 3.clearEditText可以被用来清除用于显示的字符串而不改变ComboBox的内容。 co...

二区36号 2万+

MATLAB控制信号发生器(USB-GPIB-HS)GPIB仪器控制教程(含matlab代码)

自动化测试时需要自动产生信号,通过matlab控制信号发生器的频率与功率,以实现自动化信号生成输出

qq_43686057的博客 1606

PCL 4PCS算法实现点云粗配准【2026最新版】

博客长期更新,本文最新更新时间为:2026年5月11日。

点云侠的博客 30万+

复选框、单行文本框、组合框

一、复选框 复选框的操作函数 bool   isChecked()  const  //判断这个复选框是否被选中 void     setChecked(bool)   //设置这个复选框的选中情况 复选框的信号 void    stateChanged(int state)   //状态改变信号 例1创建一个是否同意协议的复选框选中后下一步按钮能用不选中下一步按钮不能用 #ifnd

IMBeGooD的博客 2446

Keil uVision5 STM32 startup_stm32f10x_md_vl.s error A3906U Malformed via file target not created..

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2778

Qt Quick 中 Combobox 的使用

本例子为QtQuick核心编程中的一个小例子,本例子讲述了基本使用combobox的使用: import QtQuick 2.2 import QtQuick.Window 2.12 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.2 Window { width: 480; height: 360; color: "#a0a0a0"; Grid{ anchors.fill: ..

比卡丘不皮的博客 520

先进封装类别分析与典型案例

当制程微缩逼近物理极限、单颗大芯片(reticle limit)面积受限于光罩尺寸,且逻辑、存储、射频、传感等功能无法用同一套工艺最经济地制造时,性能增益的来源从 "晶体管密度" 转向 "互连密度"。先进封装的本质,是在芯片外部用更短、更密、更宽的路径把多个裸 die(die)互连起来,换取更高带宽、更低延迟、更小体积和异构集成能力。行业通常按划分为 2D、2.5D、3D、扇出、SiP 五大谱系,Chiplet/UCIe 则是贯穿其上的设计方法论,玻璃基板、共封装光学(CPO)是正在成型的新分支。

0 34

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Qt:findfiles

1、创建一个基于QWidget...

OceanStar的博客 251

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Qt中QComboBox控件内容自动补全

QStringList strList; strList << "广东" << "广西" << "河北" << "河南"; ui->comboBox->addItems(strList); ui->comboBox->setEditable(true); QCompleter* pCompleter = new QCompleter(strList, ui->comboBox->mode.

CarlosCLLei的博客 891

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Qt4_使用窗体编辑记录

使用窗体编辑记录 我们将看到如何创建一次只显示一条记录的对话窗体。这个对话框可以用于增加、编辑、删除单独的记录,也可以遍历表中所有的记录。 我们将通过Staff Manager应用程序来阐明这些概念。该应用程序记录了雇员所属的部门、部门所处的位置以及诸如雇员内部电话分机号等一些基本信息。应用程序使用了如下三个表: CREATE TABLE location( id INTEGER PRIMARY KEY AUTOINCREMENT, name VACHAR(40) NOT NULL));

qq_36314864的博客 389

【C++QT】Combo Box 组合框控件详解

在Qt中,`QComboBox` 是通用组合框,结合下拉列表与可编辑文本框,可通过 `addItem` 添加选项,支持可编辑模式,具备可编辑性、下拉列表、数据存储、基于模型 / 视图架构等特性;`QFontComboBox` 是 `QComboBox` 的子类,专门用于选择字体,能自动列出系统可用字体,有字体选择、过滤、预览等特性。

AAADiao的博客 2438

qml 组合框ComboBox

ComboBox填充数据模型,数据模型通常是JavaScript数组,ListModel或者是整数,但是也支持其他类型的数据模型。另外,ComboBox还可以编辑 属性 acceptableInput : bool,此属性控制组合框是否包含可编辑文本字段中的可接受文本 count : int,组合框中的项目数 currentIndex : int,保存组合框中当前项的索引,只读 currentText : string,组合框中当前项的文本,只读 delegate : Component,包含一个委托,该.

qq_33373173的博客 1万+

【QT学习十二】QComboBox

QComboBox 是 Qt 中用于实现下拉框的强大工具,它提供了一种简便的方式来选择单个值或从一组选项中进行选择。QComboBox提供了一种以占用最小屏幕空间的方式向用户呈现选项列表的方法。ComboBox是一种选择小部件,显示当前项目,并可以弹出可选择项目的列表。QComboBox 是基于 Qt 框架的 QWidget 类的子类。它实现了一个下拉框,其中包含一个可供用户选择的列表。其原理主要基于使用了下拉列表(QListView)和按钮(QAbstractButton)。

从此不归路 1万+

QT——QComboBox组合框控件

QComboBox是Qt框架中提供的组合框控件,它结合了按钮和下拉列表的功能,允许用户从预定义的选项列表中选择一个或多个项目。

weixin_45720999的博客 870

C++ Qt开发:ComboBox下拉组合框组件

在Qt中,ComboBox(组合框)是一种常用的用户界面控件,它提供了一个下拉列表,允许用户从预定义的选项中选择一个。该组件提供了一种方便的方式让用户从预定义的选项中进行选择,一般来说`ComboBox`会以按钮的形式显示在界面上,用户点击按钮后,会弹出一个下拉列表,其中包含预定义的选项。当然`ComboBox`不仅局限于选择,也允许用户手动输入内容。

微软技术分享 2万+

Qt的技巧笔记(二):ComboBox 下拉组合框组件

Qt是一个跨平台的C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍下拉组合框组件的常用方法及灵活运用。适用于以下场景:​ 在Qt中,ComboBox(组合框)是一种常用的用户界面控件, 它提供了一个下拉列表,允许用户从预设的选项中选择一个。该组件提供了一种比较的方便方式让用户从预定义的选项中进行选择,一般来说 会以按钮的形式在界面上,用户点击按钮后,会弹出一个下拉列表,其中包含预定义的选项

AibVh1HJF的博客 372

[Qt 教程之Widgets模块] —— QComboBox 组合框

/ 将自定义的数据模型添加到组合框 QModelIndex rootModelIndex() const;// 设置项目的根模型项目索引 int modelColumn() const;// 设置模型可见列。如果在填充组合框之前设置,则视图不受影响,将显示第一列(使用此属性的默认值0)。Qt系列教程总目录。

淋曦的进击手记 2900

Qt QComboBox组合框控件:从基础到高级应用实战

本文全面解析Qt中的QComboBox组合框控件,从基础使用到高级应用实战。通过代码示例详细讲解文本与图标处理、动态管理选项、信号槽机制等核心功能,并分享省市联动选择器等实用案例。文章还涵盖性能优化技巧和常见问题解决方案,帮助开发者高效利用这一强大控件。

weixin_29002209的博客 374
上一篇: QT中使用多线程的几点总结
下一篇: PCL学习之PCD文件格式
angry ant
博客等级 码龄10年 9粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值