自从一段时间以来,我遇到了一个错误,例如UpdateLayeredWindowIndirect failed for ptDst=...
带有圆角的无框窗口:我将主窗口设置为无框并绘制了一个带有圆角的内部小部件。
所以,是的,这一直在默默地失败。半透明(WS_EX_LAYERED)仅适用于无框架顶层窗口是对 Windows 的限制。
但是,我只在我的主顶层窗口上设置了半透明:
if (m_isMainApplicationWindow && CGuiUtility::isTopLevelWindow(m_widget)) {
m_widget->setAttribute(Qt::WA_NativeWindow);
m_widget->setAttribute(Qt::WA_NoSystemBackground, frameless);
m_widget->setAttribute(Qt::WA_TranslucentBackground, frameless); // causing QTBUG-52206
}
那么我该如何做正确并避免错误呢?