网站设网站设计,阳江房产网二手房出售,成都网站建设制作,做网站搜爬闪引言
给窗口创建右键菜单#xff0c;右键的时候#xff0c;右键菜单出现在鼠标点击处。同时设置右键菜单的样式#xff0c;右键菜单为圆角#xff0c;起初设置样式的时候#xff0c;右键菜单的背景在圆角边缘会出现黑色的方角#xff0c;不能很好的显示为圆角#xff0…引言
给窗口创建右键菜单右键的时候右键菜单出现在鼠标点击处。同时设置右键菜单的样式右键菜单为圆角起初设置样式的时候右键菜单的背景在圆角边缘会出现黑色的方角不能很好的显示为圆角后来设置了右键菜单无标题栏背景透明和固定大小后可以了。
实现
void LayoutListWidget::createRightMenu()
{m_menu new QMenu(this);m_actionDel new QAction(QStringLiteral(删除),m_menu);m_menu-addAction(m_actionDel);m_actionModifyName new QAction(QStringLiteral(修改名称),m_menu);m_menu-addAction(m_actionModifyName);m_actionSceneLinkage new QAction(QStringLiteral(场景联动),m_menu);m_menu-addAction(m_actionSceneLinkage);//保存创建的右键菜单,初始所有的都没有显示
// m_isDisplayRightMenu.insert(m_menu,false);setRightMenuStyle();
}
void LayoutListWidget::setRightMenuStyle()
{m_menu-setWindowFlag(Qt::FramelessWindowHint);m_menu-setAttribute(Qt::WA_TranslucentBackground);//菜单圆角QString styleSheet;styleSheet.append(QMenu{font-size: 18px;font-family: Microsoft YaHei;font-weight: 400;color: #FFFFFF;border-radius: 10px;background-color: rgb(8, 7, 91);border: 1px solid #01B5EF;}QMenu::item{width:178px;height:40px;padding-left:28px;margin-top:25px;}//设置与上边框界限的距离QMenu::item:selected{background-color: #01E4EE;});m_menu-setFixedSize(180,210);m_menu-setStyleSheet(styleSheet);
}
void LayoutListWidget::on_LayoutListWidget_customContextMenuRequested(const QPoint pos)
{Q_UNUSED(pos);if (m_menu ! nullptr m_delId ! 0) {m_menu-exec(QCursor::pos());//右键菜单在点击点位置}
}上述代码实现了右键菜单的创建样式的设置以及点击右键的时候使右键菜单出现在鼠标点击处。
重点
1.右键菜单的样式为圆角需要在设置样式前先设置右键菜单的没有标题背景透明固定大小 2.右键菜单出现在鼠标右键点击处使用自带的槽函数customContextMenuRequested(const QPoint pos)。