QT QEvent 转换为 QMouseEvent ,QKeyEvent....等子类
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
//将QEvent对象转换为真正的QKeyEvent对象
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(e);
==========================
Qt QEvent*转QKeyEvent*
如题
如下即可:
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
如果报错
mainwindow.cpp:21:35: error: static_cast from 'QEvent *' to 'QKeyEvent *', which are not related by inheritance, is not allowed
qwidget.h:75:7: note: 'QKeyEvent' is incomplete
记得加上
include <QKeyEvent>
————————————————
版权声明:本文为CSDN博主「swy_swy_swy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/swy_swy_swy/article/details/108278592
qt中的 QEvent能转换成 QMouseEvent吗
https://zhidao.baidu.com/question/432756712079469084.html
QMouseEvent是QEvent的间接子类,如果QEvent的指针指向的是QMouseEvent对象,当然可以转换,如果不是,转换失败。这是C++的多态啊。