具有半透明背景的Qt无框窗口,没有错误“ UpdateLayeredWindowIndirect失败”

时间:2018-09-10 10:49:34

标签: qt qwindow

一段时间以来,我的带有圆角的无框窗口出现类似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
}

那我该怎么做才能避免错误?


印象如何: Frameless window rounded corner

0 个答案:

没有答案