2015-11-20 82 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)