我想要的内容显示在图片http://doc.qt.io/qt-4.8/qactiongroup.html#details中的文档中,但我无法弄清楚如何执行此操作。我可以创建一个分隔符使用菜单栏中的文本创建分隔符
QAction * separator = new QAction("This is ignored", actionGroup);
separator->setSeparator(true);
但是它只是一条线。在示例中,如何将“对齐”文本添加到动作中?
我想要的内容显示在图片http://doc.qt.io/qt-4.8/qactiongroup.html#details中的文档中,但我无法弄清楚如何执行此操作。我可以创建一个分隔符使用菜单栏中的文本创建分隔符
QAction * separator = new QAction("This is ignored", actionGroup);
separator->setSeparator(true);
但是它只是一条线。在示例中,如何将“对齐”文本添加到动作中?
按照你的链接,然后以“菜单”例如链接(在您的例子是摘自),然后mainwindow.cpp(这是源文件的那个例子之一),我到:http://doc.qt.io/qt-4.8/qt-mainwindows-menus-mainwindow-cpp.html
在该源文件是createMenus最后一个函数,其包含以下内容:
formatMenu = editMenu->addMenu(tr("&Format"));
formatMenu->addAction(boldAct);
formatMenu->addAction(italicAct);
formatMenu->addSeparator()->setText(tr("Alignment"));
formatMenu->addAction(leftAlignAct);
formatMenu->addAction(rightAlignAct);
formatMenu->addAction(justifyAct);
formatMenu->addAction(centerAct);
formatMenu->addSeparator();
formatMenu->addAction(setLineSpacingAct);
formatMenu->addAction(setParagraphSpacingAct);
最重要的一点是在第四行:在()由addSeparator加入分离器的setText
嘛。尝试使用Qt 5.6中的文档示例,使用 addSepatarator() - > setText(“Whatever”); 不起作用。分隔符仍然没有文字。 – LRaiz
这可以使用进行QLabel
与QWidgetAction
(例如在python):
label = QtGui.QLabel("<b>At least it is rich text!</b>")
label_action = QtGui.QWidgetAction(self)
label_action.setDefaultWidget(label)
menu.addAction(label_action)
http://www.qtforum.org/article/32038/labeled-menu-separators.html –