效果图

添加菜单
QMenu* m_pAudioMenu = new QMenu(m_pMeetingWindow);
m_pAudioMenu->setProperty("class", "blackMenu");
m_pAudioMenu->setWindowFlags(m_pAudioMenu->windowFlags() | Qt::FramelessWindowHint);
m_pAudioMenu->setAttribute(Qt::WA_TranslucentBackground);
QWidgetAction* pWdtAction1 = new QWidgetAction(m_pAudioMenu);
pWdtAction1->setDefaultWidget(new QLabel("选择麦克风", m_pAudioMenu));
m_pAudioMenu->addAction(pWdtAction1);
m_pAudioMenu->addSeparator();
QWidgetAction* pWdtAction2 = new QWidgetAction(m_pAudioMenu);
pWdtAction2->setDefaultWidget(new QLabel("选择扬声器", m_pAudioMenu));
m_pAudioMenu->addAction(pWdtAction2);
m_pAudioMenu->addAction(QIcon(":/images/yes.svg"), "扬声器 (Realtek High Definition Audio)");
m_pAudioMenu->addAction("AK27QC (NVIDIA High Definition Audio)");
m_pAudioMenu->addSeparator();
m_pAudioMenu->addAction("切换到电话音频");
m_pAudioMenu->addAction("音频设置");
QSS样式
QMenu.blackMenu {
padding: 5px 0;
border-radius: 5px;
background-color: rgba(38, 40, 42, 230);
}
QMenu.blackMenu::separator {
height: 2px;
margin: 6px 0;
background-color: rgba(255, 255, 255, 0.3);
}
QMenu.blackMenu::icon {
padding: 0 0 0 10px;
}
QMenu.blackMenu::item {
color: white;
padding: 3px 10px;
font-weight: bold;
background-color: transparent;
}
QMenu.blackMenu::item:hover,
QMenu.blackMenu::item:pressed,
QMenu.blackMenu::item:selected {
background-color: rgba(255, 255, 255, 0.3);
}
QMenu.blackMenu::item QLabel {
color: rgb(145, 145, 145);
font-weight: bold;
padding-left: 7px;
margin-bottom: 5px;
background-color: transparent;
}