Qt QMenu移除下拉菜单阴影

8

我有一个带有透明背景和圆角边框的QMenu。不幸的是,在Windows 7上,为此菜单绘制了一个下拉阴影,它与圆角边缘不匹配。这是正常矩形菜单会绘制的阴影。

有没有办法完全禁用QMenu的下拉阴影绘制?或者有没有一种方法让阴影与圆角边缘相匹配呢?

这里是一个最简示例:

#include <QApplication>
#include <QPushButton>
#include <QMenu>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    QPushButton b("press me");
    QMenu m;
    m.addAction("hello"); m.addAction("world");
    m.setWindowFlags(m.windowFlags() | Qt::FramelessWindowHint);
    m.setAttribute(Qt::WA_TranslucentBackground);
    m.setStyleSheet("background:rgba(255,0,0,50%); border-radius:5px;");
    b.setMenu(&m);
    b.show();
    return a.exec();
}
1个回答

6
这应该可以解决问题:
w.setWindowFlags(w.windowFlags() | Qt::NoDropShadowWindowHint);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接