QComboBox 鼠标点击触发选项更新,不重写QComboBox类。

让 ui 中的 QComboBox 控件有点击交互,QComboBox 控件其实就是一个下拉框样式的控件,这个下拉框提供的交互是点击之后会展开所有的选项,用户选择后将会发出信号,也就是选择改变的信号,设计者接收这个信号到槽就可以捕捉用户的选择更改了。然而,要求实现的是点击此框,即会触发一次所选项的更新。

在该控件的信号和槽查找之后并没有找到相应的信号和槽,经过查找资料发现QComoBox不支持。但是这个功能还是可以自己实现的, 有一种做法是重写QComboBox类,添加鼠标点击事件。但是这篇文章没有采用这种写法,使用的是 EventFilter过滤鼠标事件,这样就能避免重写QComboBox,个人觉得还是比较简单的,使用这种方法还可以解决更多类似的问题。

1、在头文件添加:

public slots:
bool eventFilter(QObject *, QEvent *);

2、在源文件中为需要响应事件的控件安装事件过滤

ui->comboBox->installEventFilter(this);

3、然后在事件监视函数eventFilter()中监视响应事件

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{if(event->type() == QEvent::MouseButtonPress){if(obj == ui->comboBox){//处理鼠标点击事件QComboBox * combobox = qobject_cast<QComboBox *>(obj);combobox->clear();combobox.addItem("list1");}}return QWidget::eventFilter(obj, event);
}

到此结束,是不是比重写QComboBox要简单多了。

来自QQ群 Linux && 技术分享 311078264

打开链接加入QQ群:https://jq.qq.com/?_wv=1027&k=5Gr3bAx

此文档由elikang整理,为了文章简单直接,许多细节未能在文章中体现,如有疑问请进群讨论。
参考:
https://forum.qt.io/topic/82695/click-on-drop-down-list-of-qcombobox (eventFilter)
https://blog.csdn.net/qiufenpeng/article/details/81259344 (重写QComboBox)

QComboBox 鼠标点击触发 选项更新相关推荐

  1. CSS鼠标点击触发高亮

    css就是为了美化控件,充实窗口 我习惯用ui控件的改变样式表改变css代码 整个窗口的css代码 鼠标点击可以看到按下去 /* 设置按钮的属性 */QToolButton[objectName=&q ...

  2. 鼠标点击触发事件python_如何在鼠标按下的情况下触发tkinter的“Enter”事件?...

    在tkinter with Python3.7中,事件绑定的默认行为是在释放鼠标之前单击鼠标后不会触发"&lt:Enter&gt:"事件.我打算实现一个可滚动表,这 ...

  3. PyQt5重写QComboBox的鼠标点击事件

    最近学PyQt5,想要做一个串口调试助手来练练手,之前用了正点原子的串口上位机,觉得点击ComboBox自动检测串口这个功能很棒,之前用QT5写串口调试助手的时候也想加入这个功能,但是一直没有成功,之 ...

  4. 鼠标在用了一段之后偶然发现以给特别慢的速度移动鼠标,会在移动到可点击的选项按钮附近明显的卡住问题。

    鼠标在用了一段之后偶然发现以给特别慢的速度移动鼠标,会在移动到可点击的选项按钮附近明显的卡住问题. 买的罗技的G pro,近期重装了一遍系统偶然发现这个问题,已经严重影响了鼠标的使用,制表制图的时候很 ...

  5. Unity中,实现鼠标点击物体,触发事件

    对于UI,很容易能够实现鼠标点击,从而触发事件,但是对于游戏中的物体,则需要多进行一些操作. 原理很简单,就是由鼠标点击处发射线,与游戏物体发生碰撞,碰撞到的物体,就是你点击到的物体.具体操作如下: ...

  6. 【js中鼠标点击、移动和光标移动的事件触发】

    事件有三要素:事件源.事件数据.事件处理程序 事件冒泡:当元素嵌套的时候,内部元素激发某个事件后,默认情况下外部元素相应的事件也会跟着依次触发 可以加return false;是阻止默认操作 oncl ...

  7. figma下载_在Figma上进行原型制作的各种触发选项

    figma下载 Prototypes are model versions of digital products. They're used to measure usability by test ...

  8. 计算机上键盘无法输入法,为什么键盘打不出字 大家都会用鼠标点击输入法图...

    说到不出,大家应该都知道,有朋友问电脑键盘打不出字是怎么回事,还有人问电脑键盘打不出来字是什么原因,这到底怎么回事呢?事实上台式电脑的键盘突然不能用了呢,下面就由小编为大家介绍一下为什么键盘打不出字, ...

  9. 鼠标点击图片移动时图片移动,松开鼠标,再移动鼠标时,图片仍随着鼠标移动问题

    解决方法见红色代码,在mousedown事件下加入红色部分的代码,即禁止拖动img图片.原因不明,但是好使,哈哈.下面的整个代码为实现 鼠标点击图片移动图片,松开鼠标停止移动 功能.//鼠标拖动 va ...

最新文章

  1. Java时间操作工具类
  2. 参与组织社区活动总结
  3. 数据结构——树、二叉树、森林、哈夫曼树、字符串模式匹配
  4. 一起学nRF51xx 9 -  pwm
  5. Java中的String、StringBuffer、StringBuilder的区别和使用范围
  6. CentOS6挂载读写NTFS分区(ntfs-3g)
  7. 线程可见性和关键字volatile
  8. java boolean例子_Java Field setBoolean()用法及代码示例
  9. python合并两个文本文件内容_利用python自带插件合并多个excle文件内容
  10. linux下 java 文本_Java中如何将输入的信息写入文本中
  11. python找不到文件中文文件名_找不到的方法虽然存在于同一个py文件中 - python
  12. 4月10日下午学习日志
  13. 华硕Z77系列主板怎么进行超频设置?
  14. c语言 获取中文首字母,C语言获取汉字拼音首字母
  15. BUG的跟踪管理、定位BUG
  16. 苹果电脑python编译器_Mac版-python环境配置(二):编译器pycharm下载安装
  17. 通过Ubuntu16.04编译Android下的osip动态库
  18. 这个应该是目前最全的Tracking相关的文章了
  19. 【网络安全学习实践】Windows基本DOS文件命令与简易病毒编写
  20. 计算机保研面试自我介绍,计算机保研面试英文自我介绍范文

热门文章

  1. 亚马逊云科技云服务概览(上):基础服务
  2. 【前端高频面试题】 浏览器地址栏输入网页地址后发生了什么?
  3. 如何把acer aspire5560G笔记本拆开清理灰尘
  4. java jxl使用_java创建excel示例(jxl使用方法)
  5. pmp-现金流贴现(贴现率)
  6. layer.confirm 用法
  7. 计算机网络里的DHCP是什么,DHCP是什么意思?DHCP基础知识介绍
  8. ARM-Linux内核基础知识
  9. 数据库的唯一标示符(ID)的选择
  10. WebRTC之NAT穿墙