我打算制作一个非矩形QDialog
,所以我通过覆盖QDialog::paintEvent
绘制一个png图像。一切都没问题,除了在对话框中显示一个灰色边框。就像这样:
我确信边框不属于图片,我有setWindowFlags(Qt::FramelessWindowHint)
和setAttribute(Qt::WA_TranslucentBackground, true)
。我尝试设置border-width: 0px
之类的qss但不起作用。
有没有办法删除边框?为什么要显示?
答案 0 :(得分:7)
您可以通过设置Qt::FramelessWindowHint
窗口标志:
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
要使其透明,您应该设置以下属性:
setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TranslucentBackground);
setAttribute(Qt::WA_PaintOnScreen);