QComboBox,包含在QGraphicsProxyWidget中的简单QDialog的一部分,不响应鼠标滚轮事件

时间:2013-06-04 12:16:14

标签: qt pyqt qgraphicsscene qcombobox

我有一个简单的QDialog,只包含QComboBoxQPlainTextEdit,包含QGraphicsProxyWidget。通常,专注的QComboBox会响应wheelEvent s,更改其currentIndex。但是,在此QGraphicsProxyWidget中,没有任何回应。

作为一项实验,我还尝试在wheelEventQComboBox中捕捉QGraphicsProxyWidget,但它也从未被调用过。

如何让嵌入式QComboBox响应鼠标滚轮事件?如果您知道如何在显示弹出列表时对鼠标事件做出响应,则获得一等奖。

1 个答案:

答案 0 :(得分:2)

如果它正常工作,事件传播的路径是:

QGraphicsView::wheelEvent

QGraphicsScene::wheelEvent

QGraphicsWidget::sceneEvent(代理窗口小部件的父类)

QGraphicsItem::sceneEvent(代理窗口小部件的父级父级)

QGraphicsProxyWidget::wheelEvent

QComboBox::wheelEvent

你已经知道它没有达到QGraphicsProxyWidget::wheelEvent,所以如果我是你,我会进一步向链条找到它被卡住的地方。

你是否在其他任何地方重写wheelEvent,比如QGraphicsView或QGraphicsScene?如果是这样,那可能是你问题的根源,因为这些类应该将事件转发给他们的孩子。