2014-12-04 2 views
0

Как добавить слот для переключения отображения и скрыть панель инструментов в qmenu? Это мой код:Qtoolbar toggle show hide on Qmenu

#include "mainwindow.h" 

MainWindow::MainWindow(QWidget *parent) 
    : QMainWindow(parent) 
{ 
    setMinimumSize(800, 600); 

    CreateAct(); 
    CreateMenus(); 
    createToolBars(); 
} 

void MainWindow::CreateAct() 
{ 
    undoAct = new QAction(QIcon::fromTheme("edit-undo", QIcon(":/images/undo.png")), tr("&Undo"), this); 
    redoAct = new QAction(QIcon::fromTheme("edit-redo", QIcon(":/images/redo.png")), tr("&Redo"), this); 
    cutAct = new QAction(QIcon::fromTheme("edit-cut", QIcon(":/images/cut.png")), tr("Cu&t"), this); 
    copyAct = new QAction(QIcon::fromTheme("edit-copy", QIcon(":/images/copy.png")), tr("&Copy"), this); 
    pasteAct = new QAction(QIcon::fromTheme("edit-paste", QIcon(":/images/paste.png")), tr("&Paste"), this); 

    editToolBarAct = new QAction(tr("Show edit toolbar"), this); 
    editToolBarAct->setCheckable(true); 
    editToolBarAct->setChecked(true); 
// connect(editToolBarAct, SIGNAL(toggled(bool)), editToolBar, SLOT()); 

    fileToolBarAct = new QAction(tr("Show file toolbar"), this); 
    fileToolBarAct->setCheckable(true); 
    fileToolBarAct->setChecked(true); 
// connect(fileToolBarAct, SIGNAL(toggled(bool)), fileToolBar, SLOT()); 
} 

void MainWindow::CreateMenus() 
{ 
    windowMenu = menuBar()->addMenu(tr("&Window")); 
    windowMenu->addAction(fileToolBarAct); 
    windowMenu->addAction(editToolBarAct); 
} 

void MainWindow::createToolBars() 
{ 
    fileToolBar = addToolBar("file"); 
    fileToolBar->addAction(undoAct); 
    fileToolBar->addAction(redoAct); 
    fileToolBar->toggleViewAction(); 
    fileToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::LeftToolBarArea); 

    editToolBar = addToolBar(tr("Edit")); 
    editToolBar->addAction(cutAct); 
    editToolBar->addAction(copyAct); 
    editToolBar->addAction(pasteAct); 
    editToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::LeftToolBarArea); 
} 

MainWindow::~MainWindow() {} 

Я знаю, используя toggleViewAction, но как использовать этот код (я действительно новое в квартах программирования), вы можете дать мне пример кода? Я пробовал поиск в Интернете, но не нашел примеров его использования.

ответ

0

Следующий небольшой пример показывает, как использовать QToolBar::toggleViewAction():

class MainWindow : public QMainWindow 
{ 
public: 
    MainWindow() 
    { 
     // Create a tool bar 
     QToolBar *tb = addToolBar("My Tool Bar"); 
     [..] 

     // Create a menu and add toggle action for the tool bar. 
     QAction *tba = tb->toggleViewAction(); 
     QMenu *m = menuBar()->addMenu("&Window"); 
     m->addAction(tba); 
    } 
}; 
+0

Большое спасибо @vahancho .. –