我有附加到非 QT 应用程序的 DLL。在 DLL 中,我创建 QThread 和 QApplication 实例并运行事件循环。我有 QDialog 和 QTimer 用于在 4 秒后隐藏对话框。我也覆盖了 mousePressEvent 但它不能正常工作。仅当我调整对话框大小时才调用覆盖函数。如果我不调整大小,对话框将隐藏并且 mousePressEvent 函数没有调用。
线:
void MThread::run()
{
MThread::_app = new QApplication(_argc, _argv);
_main_window = new SongTitle();
_main_window->SetTitle(QString::fromLocal8Bit("lalala"));
_main_window->ShowTitle();
MThread::_app->exec();
}
鼠标事件:
void SongTitle::mouseReleaseEvent(QMouseEvent *event)
{
MessageBoxW(0, L"in mouse event",L"",0);
switch (event->button()){
case Qt::LeftButton:
MessageBoxW(0, L"left",L"",0);
break;
case Qt::RightButton:
MessageBoxW(0, L"right",L"",0);
break;
default:
QDialog::mousePressEvent(event);
break;
}
}
如何解决这种行为?