fix examples on Windows

This commit is contained in:
Altair Wei 2021-10-06 20:53:24 +08:00
parent d680ad87b1
commit 420d942762
3 changed files with 27 additions and 0 deletions

View File

@ -107,6 +107,20 @@ void MainWindow::showEvent(QShowEvent *event)
}
}
#ifdef Q_OS_WIN
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
if (!m_helper)
return QWidget::nativeEvent(eventType, message, result);
if (m_helper->handleNativeEvent(this->windowHandle(), eventType, message, result))
return true;
else
return QWidget::nativeEvent(eventType, message, result);
}
#endif // Q_OS_WIN
void MainWindow::changeEvent(QEvent *event)
{
QWidget::changeEvent(event);

View File

@ -41,6 +41,9 @@ protected:
void showEvent(QShowEvent *event) override;
void paintEvent(QPaintEvent *event) override;
void changeEvent(QEvent *event) override;
#ifdef Q_OS_WIN
bool nativeEvent(const QByteArray &eventType, void *message, long *result) override;
#endif // Q_OS_WIN
Q_SIGNALS:
void windowStateChanged();

View File

@ -334,6 +334,15 @@ bool Widget::nativeEvent(const QByteArray &eventType, void *message, qintptr *re
bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result)
#endif
{
#ifdef Q_OS_WIN
if (m_helper) {
if (m_helper->handleNativeEvent(this->windowHandle(), eventType, message, result))
return true;
else
return QWidget::nativeEvent(eventType, message, result);
}
#endif
if (message) {
if (Utilities::isThemeChanged(message)) {
updateStyleSheet();
@ -349,5 +358,6 @@ bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *resul
}
}
}
return QWidget::nativeEvent(eventType, message, result);
}