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) void MainWindow::changeEvent(QEvent *event)
{ {
QWidget::changeEvent(event); QWidget::changeEvent(event);

View File

@ -41,6 +41,9 @@ protected:
void showEvent(QShowEvent *event) override; void showEvent(QShowEvent *event) override;
void paintEvent(QPaintEvent *event) override; void paintEvent(QPaintEvent *event) override;
void changeEvent(QEvent *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: Q_SIGNALS:
void windowStateChanged(); 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) bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result)
#endif #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 (message) {
if (Utilities::isThemeChanged(message)) { if (Utilities::isThemeChanged(message)) {
updateStyleSheet(); updateStyleSheet();
@ -349,5 +358,6 @@ bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *resul
} }
} }
} }
return QWidget::nativeEvent(eventType, message, result); return QWidget::nativeEvent(eventType, message, result);
} }