Qt 自定义右键菜单样式 - 详细教程
在Qt中,可以通过修改QMainWindow的样式来实现右键菜单的样式设计。具体步骤如下:
-
创建一个新的QMainWindow类的子类,命名为CustomMainWindow。
-
在CustomMainWindow的构造函数中设置右键菜单的样式,可以使用QSS(Qt Style Sheet)来设置样式。可以通过调用setStyleSheet()函数来设置QSS样式。
CustomMainWindow::CustomMainWindow(QWidget *parent) : QMainWindow(parent)
{
setStyleSheet('QMenu {'
'background-color: #F0F0F0;'
'border: 1px solid #707070;'
'}'
'QMenu::item {'
'padding: 5px 25px 5px 25px;'
'}'
'QMenu::item:selected {'
'background-color: #B0B0B0;'
'}');
}
上述代码中,设置了QMenu的背景色为灰色(#F0F0F0),边框颜色为深灰色(#707070),设置了QMenu::item的内边距为5个像素的上下边距和25个像素的左右边距,设置了选中的QMenu::item的背景色为浅灰色(#B0B0B0)。
- 在CustomMainWindow的右键菜单事件处理函数中创建并显示右键菜单。
void CustomMainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction('菜单项1');
menu.addAction('菜单项2');
menu.exec(event->globalPos());
}
上述代码中,使用QMenu类创建了一个右键菜单,并添加了两个菜单项。最后调用menu.exec()函数显示右键菜单,event->globalPos()函数获取鼠标右键点击的全局坐标。
- 在主函数中创建CustomMainWindow的实例并运行程序。
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
CustomMainWindow w;
w.show();
return a.exec();
}
运行程序后,右键点击CustomMainWindow窗口,即可看到自定义的右键菜单样式。
原文地址: https://www.cveoy.top/t/topic/qBxl 著作权归作者所有。请勿转载和采集!