我的目标是创建带有标签分隔符的菜单。 因此,我正在运行以下代码:
QMenu *menu = new QMenu;
QAction *group1 = menu->addSeparator();
group1->setText("Group of actions #1");
menu->addAction("Action #1");
menu->addAction("Action #2");
menu->addAction("Action #3");
QAction *group2 = menu->addSeparator();
group2->setText("Group of actions #2");
menu->addAction("Action #1");
menu->addAction("Action #2");
menu->addAction("Action #3");
QToolButton btn;
btn.setText("Click me");
btn.setMenu(menu);
btn.setPopupMode(QToolButton::InstantPopup);
btn.show();
然后得到了这个:
而不是这个(我用 MS Paint 创建的:))
有什么问题吗?
编辑:是的,还有另一个类似的问题 (QMenu 中的非交互项),但也许存在更简单的方法?
其中一种解决方案 是使用“Fusion”主题 :) 我只需将以下代码添加到 int main
函数中:
int main(int argc, char *argv[]) {
QApplication::setStyle("Fusion");
QApplication a(argc, argv);
...
addSection(const QString&)
看起来可能会起作用。 - Alyssa HaroldsenaddSection
只显示一行。 刚刚在这里读到了评论。问题是特定于操作系统(Win 7)。好的,感谢您的帮助!现在该怎么处理这个问题? - Rinat