Qt : 禁用控件默认的鼠标滚轮事件

最近在写一个模拟器,在item中添加了很多的控件,这些控件默认是支持鼠标滚动事件的。在数据量特别大的时候,及容易不小心就把数据给修改了而不自知。所有,我们这里需要禁用掉这些控件的鼠标滚轮事件。

实现的思想很简单,集成Qt提供的控件,并重写wheelEvent.为了偷懒,笔者进行了如下的设计:

cpp 复制代码
#ifndef NOWHEELUICONTROLS_H
#define NOWHEELUICONTROLS_H

#include <QWheelEvent>
#include <QComboBox>
#include <QDoubleSpinBox>
#include <QSpinBox>
#include <QListWidget>

#define DEFINE_NOWHEEL_CONTROLS(parent)  \
class NoWheel##parent : public parent { \
public:\
    using parent::parent; /* Use the constructor of the parent class */ \
protected:\
    void wheelEvent(QWheelEvent* event) override { event->ignore(); } \
};

DEFINE_NOWHEEL_CONTROLS(QComboBox)
DEFINE_NOWHEEL_CONTROLS(QDoubleSpinBox)
DEFINE_NOWHEEL_CONTROLS(QSpinBox)
DEFINE_NOWHEEL_CONTROLS(QListWidget)
// add new here

#endif // NOWHEELUICONTROLS_H
相关推荐
c238564 小时前
c/c++中的多态(上)
开发语言·c++
彷徨而立4 小时前
【C++】介绍 std::ifstream 输入文件流
开发语言·c++
罗超驿4 小时前
13.JavaScript 新手入门指南:语法、变量、流程控制全解析
开发语言·javascript
yingjie1104 小时前
Scanpy vs Seurat 深度对比:Python 与 R 的单细胞分析框架谁更强?
开发语言·python·r语言·生物信息学·单细胞转录组·seurat·scanpy
程序大视界4 小时前
【C++ 从基础到项目实战】C++(六):拷贝控制——浅拷贝与深拷贝,兼谈智能指针
开发语言·c++·cpp
luck_bor4 小时前
IO流知识点笔记
java·开发语言·笔记
程序大视界4 小时前
【Python系列课程】Pandas(四):数据统计与排序——describe、sort_values、sample
开发语言·python·pandas
KWTXX5 小时前
使用matlab官网的skills调用claude-待完成
开发语言·matlab
Cthy_hy5 小时前
Python算法竞赛:排列组合核心用法
开发语言·python·算法