2
저는 Windows를 사용하며 스타일 시트를 반투명 배경으로 만들기 위해 QMenu에 스타일 시트를 설정하고 싶습니다. 이를 위해 먼저 FramelessWindowHint를 설정 한 다음 WA_TranslucentBackground 속성을 설정합니다. 그런 다음 스타일 시트를 설정하고 팝업 방식으로 메뉴를 표시합니다. 그것은 정확하게 그려지지만, 이상하게 행동합니다 : FramelessWindowHint를 가지 자마자, 항상 popup() 메소드를 호출하기 전에 볼 수 있습니다. 항목 중 하나를 클릭 한 후에는 더 이상 숨기지 않습니다.Qt : 반투명 배경이있는 QMenu
#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();
}