【发布时间】:2017-02-07 02:49:16
【问题描述】:
我有一个包含一些自定义复杂小部件的 QListWidget。这些小部件包含 QListWidget 无权访问的子小部件。但是,后面的一些小部件是 QComboBoxes,它们会为它们抓取鼠标滚轮事件,而不是滚动列表。
我正在寻找一种方法来禁用这种抓取,以便可以从列表上的任何位置滚动列表,而不必担心它会改变其他内容。我可以从孩子那里找到所有解决方案(安装事件过滤器或子类化),但我无权访问。
有没有办法只从父母那里做到这一点?
我会搜索孩子并安装过滤器,但层数未知。
【问题讨论】:
-
如果你想打破大锤,你可以在你的 qApp 对象中覆盖 QApplication::notify(QObject*,QEvent*) (显然你需要继承 QApplication)并拦截/重定向 QObject 原来是 QListWidget 中的 QComboBox 之一的任何调用。
-
哇,这有点太大了。但是很高兴知道它,无论如何:)