1

我打算制作一个 un-rectangle QDialog,所以我通过 override 绘制了一个 png 图像。QDialog::paintEvent一切都很好,除了对话框中显示了一个灰色边框。像这样:

在此处输入图像描述

我确定边框不属于图像,并且我有setWindowFlags(Qt::FramelessWindowHint)并且setAttribute(Qt::WA_TranslucentBackground, true)。我尝试设置一个 qssborder-width: 0px但没有工作。有什么办法可以去掉边框?为什么会显示?

4

1 回答 1

7

Qt::FramelessWindowHint您可以通过设置窗口标志来创建无边框对话框:

setWindowFlags(Qt::Window | Qt::FramelessWindowHint);

为了使其透明,您应该设置这些属性:

setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TranslucentBackground);
setAttribute(Qt::WA_PaintOnScreen);
于 2014-08-05T06:48:01.480 回答