如何删除我给出透明背景图像的QDialog的边框?

时间:2014-08-05 06:38:02

标签: c++ qt qt4 transparent borderless

我打算制作一个非矩形QDialog,所以我通过覆盖QDialog::paintEvent绘制一个png图像。一切都没问题,除了在对话框中显示一个灰色边框。就像这样:

enter image description here

我确信边框不属于图片,我有setWindowFlags(Qt::FramelessWindowHint)setAttribute(Qt::WA_TranslucentBackground, true)。我尝试设置border-width: 0px之类的qss但不起作用。 有没有办法删除边框?为什么要显示?

1 个答案:

答案 0 :(得分:7)

您可以通过设置Qt::FramelessWindowHint窗口标志:

来创建无边框对话框
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);

要使其透明,您应该设置以下属性:

setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TranslucentBackground);
setAttribute(Qt::WA_PaintOnScreen);