QT浮動窗口和菜單項綁定顯示和隱藏

 

 

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDockWidget>
#include <QLabel>
#include <QMessageBox>
#include <QStackedWidget>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QMenuBar *mBar = this->menuBar();//菜單欄
    QMenu *window = mBar->addMenu("窗體");
    QAction *docktoggles_ = new QAction("浮動窗口顯示") ;//浮動框顯示菜單項
    window->addAction(docktoggles_);

    //創建一個QDockWidget浮動框
    QDockWidget * toolsettings_ = new QDockWidget(this);
    toolsettings_->setWindowTitle("顯示浮動框");
    toolsettings_->setObjectName("toolSetting");
    toolsettings_->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    addDockWidget(Qt::RightDockWidgetArea, toolsettings_); //右側筆刷設置窗口

    QStackedWidget * widgets_ = new QStackedWidget(this);
    toolsettings_->setWidget(widgets_);
     widgets_->addWidget(new QLabel("內容",widgets_));

    //創建一個子菜單 作爲浮動框顯示菜單項的子菜單
    QMenu *togglesMenu = new QMenu(this);
    togglesMenu->addAction(toolsettings_->toggleViewAction()); //加入這個 可以設置勾選顯示

    docktoggles_->setMenu(togglesMenu);//把子菜單加入到docktoggles_ setMenu就是爲QAction增加QMenu子菜單

    setCentralWidget(new QLabel("中間內容"));
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章