在菜单栏中创建一个带有文本的分隔符

时间:2015-11-20 07:02:58

标签: qt menubar

我想要的内容显示在图片http://doc.qt.io/qt-4.8/qactiongroup.html#details中的文档中,但我无法弄清楚如何做到这一点。我可以通过

创建一个分隔符
QAction * separator = new QAction("This is ignored", actionGroup);
separator->setSeparator(true);

然后它只是一条线。如何将“对齐”文本添加到示例中的操作中?

2 个答案:

答案 0 :(得分:1)

这可以使用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)

答案 1 :(得分:0)

关注您的链接,然后转到&#34;菜单&#34;示例链接(您的示例摘录自),然后是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);

重要的一点是第四行:setSext在addSeparator()添加的分隔符上