一段时间以来,我的带有圆角的无框窗口出现类似UpdateLayeredWindowIndirect failed for ptDst=...
的错误:我将主窗口设置为无框,并绘制了一个带有圆角的内部小部件。
在Qt here进行了讨论,并且警告代码已添加here。他们说:
所以,是的,这一直在无声地失败。这是一个限制 在Windows上,半透明(WS_EX_LAYERED)仅适用于无框 顶层窗口。
但是,我只在主顶层窗口中设置了半透明性:
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
}
那我该怎么做才能避免错误?