我想要的內容顯示在圖片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 –