2

自从一段时间以来,我遇到了一个错误,例如UpdateLayeredWindowIndirect failed for ptDst=...带有圆角的无框窗口:我将主窗口设置为无框并绘制了一个带有圆角的内部小部件。

Qt这里有一个讨论,警告的代码已经添加到这里。他们说:

所以,是的,这一直在默默地失败。半透明(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
}

那么我该如何做正确并避免错误呢?


印象它的样子: 无框窗圆角

4

0 回答 0