我有一个像这样创建的 QMenu。
QMenu *logoMenu = new QMenu();
然后我像这样将它添加到 QToolButton
logoButton->setMenu(logoMenu);
现在我有一个 project.qss 文件,其中包含 QMenu 的以下样式表
QMenu#logoMenu {
background-color: #161614; /* sets background of the menu */
border: 0px solid #161614;
width: 150px;
position: absolute;
top: 50px;
}
QMenu::item#logoMenu {
background-color: transparent;
}
QMenu::item:selected#logoMenu {
background-color: #202020;
}
我的问题是样式表不适用于 QMenu,我知道我正在正确加载样式表,因为我可以设置其他小部件的样式。
如果我像这样手动设置样式表
logoMenu->setStyleSheet("QMenu {.....}");
这是我创建 QMenu 的方法:
logoMenu = new QMenu();
logoMenu->addAction(QString::fromUtf8("Import"));
logoMenu->addAction(QString::fromUtf8("Export"));
logoMenu->addAction(QString::fromUtf8("Help"));
logoMenu->addAction(QString::fromUtf8("Exit"));
logoMenu->setObjectName("logoMenu");
它有效,没问题。有谁知道为什么会这样?