2015-11-20 101 views
1

我想要的内容显示在图片http://doc.qt.io/qt-4.8/qactiongroup.html#details中的文档中,但我无法弄清楚如何执行此操作。我可以创建一个分隔符使用菜单栏中的文本创建分隔符

QAction * separator = new QAction("This is ignored", actionGroup); 
separator->setSeparator(true); 

但是它只是一条线。在示例中,如何将“对齐”文本添加到动作中?

+0

http://www.qtforum.org/article/32038/labeled-menu-separators.html –

回答

0

按照你的链接,然后以“菜单”例如链接(在您的例子是摘自),然后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

+1

嘛。尝试使用Qt 5.6中的文档示例,使用 addSepatarator() - > setText(“Whatever”); 不起作用。分隔符仍然没有文字。 – LRaiz

0

这可以使用进行QLabelQWidgetAction(例如在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)