在菜单栏中创建带有文本的分隔符
Posted
技术标签:
【中文标题】在菜单栏中创建带有文本的分隔符【英文标题】:Create a separator with a text in the menubar 【发布时间】:2015-11-20 07:02:57 【问题描述】:图片http://doc.qt.io/qt-4.8/qactiongroup.html#details 中的文档显示了我想要的内容,但我不知道该怎么做。我可以通过
创建一个分隔符QAction * separator = new QAction("This is ignored", actionGroup);
separator->setSeparator(true);
但它只是一条线。示例中的action是如何添加“Alignment”文本的?
【问题讨论】:
qtforum.org/article/32038/labeled-menu-separators.html 【参考方案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)
【讨论】:
【参考方案2】:按照您的链接,然后到“菜单”示例链接(您的示例从中摘录),然后到 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);
重要的一点是:setText中的第四行,addSeparator()添加的分隔符
【讨论】:
好吧。尝试使用 addSepatarator()->setText("Whatever"); 遵循 Qt 5.6 中的文档示例;不起作用。分隔符仍然没有文字。 可能与风格有关以上是关于在菜单栏中创建带有文本的分隔符的主要内容,如果未能解决你的问题,请参考以下文章