gpt4 book ai didi

Qt:带有半透明背景的 QMenu

转载 作者:行者123 更新时间:2023-12-04 08:07:01 29 4
gpt4 key购买 nike

我使用 Windows,我想将样式表设置为 QMenu 以赋予其半透明背景。为了让它起作用,我首先设置 FramelessWindowHint,然后设置 WA_TranslucentBackground 属性。然后我设置我的样式表并使用 popup 方法显示菜单。它被正确绘制,但它的行为很奇怪:只要它有 FramelessWindowHint,它就始终可见(甚至在调用 popup() 方法之前)。单击其中一个条目后,它不再隐藏自己。

这是一个简约的例子:

#include <QApplication>
#include <QMenu>
#include <QPoint>
#include <QCursor>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMenu menu;
menu.addAction("about", &a, SLOT(aboutQt()));
menu.addAction("exit", &a, SLOT(quit()));
menu.setWindowFlags(Qt::FramelessWindowHint);
menu.setAttribute(Qt::WA_TranslucentBackground);
menu.setStyleSheet("QMenu{background:rgba(255, 0, 0, 50%);}");
menu.popup(QCursor::pos());
return a.exec();
}

最佳答案

menu.setWindowFlags(menu.windowFlags() | Qt::FramelessWindowHint);

应该可以解决您的问题。现在您正在清除 Qt 已经设置的所有标志.

关于Qt:带有半透明背景的 QMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624407/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com