狀態欄,Dock部件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QToolButton>
#include <QSpinBox>
#include <QTextEdit>
#include <QMdiSubWindow>
#include <QLabel>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //QMenu *fileMenu = ui->menuBar->addMenu(tr("文件(&F)")); //添加文件菜單
    QMenu *editMenu = ui->menuBar->addMenu(tr("編輯(&E)")); //添加編輯菜單
    QAction *action_Open = editMenu->addAction(QIcon(":/myImage/images/open.png"),tr("打開(&O)"));
    //QAction *action_New = fileMenu->addAction(QIcon(":/myImage/images/new.png"),tr("新建(&N)"));

    action_Open->setShortcut(QKeySequence("Ctrl + O")); //設置快捷鍵
    ui->mainToolBar->addAction(action_Open); //在工具欄中添加動作
    //action_New->setShortcut(QKeySequence("Ctrl + N"));
    //ui->mainToolBar->addAction(action_New);

    //菜單欄的設置
    //QActionGroup類,它可以包含一組動作QAction,支持這組動作中是否只能有一個動作處於選中狀態,這對於互斥型動作很有用。
    QActionGroup *group = new QActionGroup(this); //建立動作組
    QAction *action_L = group->addAction(tr("左對齊(&L)")); //向動作組中添加動作
    action_L->setCheckable(true); //設置動作checkable屬性爲true
    QAction *action_R = group->addAction(tr("右對齊(&R)"));
    action_R->setCheckable(true);
    QAction *action_C = group->addAction(tr("居中(&C)"));
    action_C->setCheckable(true);

    action_L->setChecked(true); //最後指定action_L爲選中狀態
    editMenu->addSeparator(); //向菜單中添加間隔器
    editMenu->addAction(action_L); //向菜單中添加動作
    editMenu->addAction(action_R);
    editMenu->addAction(action_C);
    //這裏讓“左對齊”,“右對齊”和“居中”3個動作處於一個動作組中,然後設置“左對齊”動作爲默認選中狀態。

    //工具欄的設置
    //工具欄QToolBar類提供了一個包含了一組控件的可以移動的面板。將QAction對象添加到工具欄中,
    //它默認只是顯示一個動作的圖標,這個可以在QToolBar的屬性欄中修改。QToolBar的屬性欄中,toolButtonStyle屬性
    //設置圖標和相應文本的顯示,及其相對位置等。movabel屬性設置狀態欄是否可以移動。allowedArea設置允許停靠的位置。
    //iconsize屬性設置圖標的大小,floatable屬性設置是否可以懸浮。
    QToolButton *toolBtn = new QToolButton(this); //創建QToolButton
    toolBtn->setText(tr("顏色"));
    QMenu *colorMenu = new QMenu(this); //創建一個菜單
    colorMenu->addAction(tr("紅色"));
    colorMenu->addAction(tr("綠色"));
    toolBtn->setMenu(colorMenu); //添加菜單
    toolBtn->setPopupMode(QToolButton::MenuButtonPopup); //設置的彈出方式是按鈕旁邊有一個向下的小箭頭
    ui->mainToolBar->addWidget(toolBtn); //向工具欄添加QToolButton按鈕

    QSpinBox *spinBox = new QSpinBox(this); //創建QSpinBox
    ui->mainToolBar->addWidget(spinBox); //向工具欄添加QSpinBox部件

    //狀態欄
    //QStatusBar類提供了一個水平條,用來顯示狀態信息。QMainWindow默認提供一個狀態欄。狀態信息分3類:
    //臨時信息:如一般的提示信息
    //正常信息:如顯示頁數和行號
    //永久信息:如顯示版本號或者日期
    //可以使用showMessage()函數類顯示一個臨時信息,它會出現在狀態欄的最左邊。一般用addWidget()添加
    //一個QLabel到狀態欄上用於顯示正常信息,它會生成到狀態欄的最左邊,可能會被臨時消息所掩蓋。若要顯示
    //永久信息,要使用addermanentWidget()函數來添加一個如QLabel一樣的可以顯示信息的部件,它會生成在
    //狀態欄的最右側,不會被臨時消息所覆蓋。
    //在狀態欄的最右側還有一個QSizeGrip部件,用來調整窗口的大小。可以使用setSizeGripEnable()函數來禁用它。

    //顯示臨時消息,顯示2000毫秒
    ui->statusBar->showMessage(tr("歡迎使用多文檔編輯器"),2000);
    //創建標籤,設置標籤樣式並顯示信息,然後將其以永久部件的形式添加到狀態欄
    QLabel *permanent = new QLabel(this);
    permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);
    permanent->setText("www.csdn.com");
    ui->statusBar->addPermanentWidget(permanent);
}

MainWindow::~MainWindow()
{
    delete ui;
}

//中心部件
void MainWindow::on_action_New_triggered()
{
    QTextEdit *edit = new QTextEdit(this); //新建文本編輯器部件
    //使用QMdiArea類的addSubWindow()函數創建子窗口,以文本編輯器爲中心部件
    QMdiSubWindow *child = ui->mdiArea->addSubWindow(edit);
    child->setWindowTitle(tr("多文檔編輯器子窗口"));
    child->show();
}

//dock部件
//QDockWidget類提供了這樣一個部件,它可以停靠在QMainWindow中,也可以懸浮起來作爲桌面頂級窗口,
//稱它爲Dock部件或停靠窗口。Dock部件一般用於存放一些其他部件來實現特殊功能,就像一個工具箱。
//它在主窗口中可以停靠在中心部件的四周,也可以懸浮起來,被拖到任意的地方,還可以被關閉或隱藏起來。
//一個Dock部件包含一個標題欄和一個內容區域,可以向Dock部件中放入任何部件。

void MainWindow::on_action_Show_triggered()
{
    ui->dockWidget->show();
}



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