我有一个简单的QDialog
,只包含QComboBox
和QPlainTextEdit
,包含QGraphicsProxyWidget
。通常,专注的QComboBox
会响应wheelEvent
s,更改其currentIndex
。但是,在此QGraphicsProxyWidget
中,没有任何回应。
作为一项实验,我还尝试在wheelEvent
或QComboBox
中捕捉QGraphicsProxyWidget
,但它也从未被调用过。
如何让嵌入式QComboBox
响应鼠标滚轮事件?如果您知道如何在显示弹出列表时对鼠标事件做出响应,则获得一等奖。
答案 0 :(得分:2)
如果它正常工作,事件传播的路径是:
QGraphicsView::wheelEvent
QGraphicsScene::wheelEvent
QGraphicsWidget::sceneEvent
(代理窗口小部件的父类)
QGraphicsItem::sceneEvent
(代理窗口小部件的父级父级)
QGraphicsProxyWidget::wheelEvent
QComboBox::wheelEvent
你已经知道它没有达到QGraphicsProxyWidget::wheelEvent
,所以如果我是你,我会进一步向链条找到它被卡住的地方。
你是否在其他任何地方重写wheelEvent,比如QGraphicsView或QGraphicsScene?如果是这样,那可能是你问题的根源,因为这些类应该将事件转发给他们的孩子。