【发布时间】:2020-09-28 12:40:24
【问题描述】:
我用Qt::FramelessWindowHint自定义了窗口框架和窗口标题栏等。 但是我现在缺少系统菜单(右键单击应用程序图标或任务栏中的应用程序名称等时会得到)。 如何获取系统菜单并显示它? 我正在研究 linux c++/Qt
【问题讨论】:
-
您想为您的应用提供上下文菜单吗?这是你的问题吗?
-
是的。但我想要系统默认上下文菜单。
我用Qt::FramelessWindowHint自定义了窗口框架和窗口标题栏等。 但是我现在缺少系统菜单(右键单击应用程序图标或任务栏中的应用程序名称等时会得到)。 如何获取系统菜单并显示它? 我正在研究 linux c++/Qt
【问题讨论】:
您可以创建自己的上下文菜单,使其类似于系统上下文菜单。
只需使用.qrc 文件添加.css 文件与您的风格(如系统上下文菜单)。
样式示例:
QMenu::item
{
background-color: rgb(0, 170, 0);
color: rgb(255, 255, 255);
}
QMenu::item:selected
{
background-color: rgb(0, 85, 127);
color: rgb(255, 255, 255);
}
你可以通过 setStyleSheet() 方法而不用 .qrc 文件:
QString menuStyle(
"QMenu::item{"
"background-color: rgb(0, 170, 0);"
"color: rgb(255, 255, 255);"
"}"
"QMenu::item:selected{"
"background-color: rgb(0, 85, 127);"
"color: rgb(255, 255, 255);"
"}"
);
this->setStyleSheet(menuStyle);
如何创建上下文菜单示例:https://evileg.com/en/post/76/
【讨论】: