QT開發(二十二)——QMainWindow主窗口

QT開發(二十二)——QMainWindow主窗口

1、主窗口簡介

    應用程序中的主窗口是與用戶進行長時間交互的頂層窗口,提供了應用程序的大部分功能,一般是應用程序啓動後的第一個窗口,應用程序通常由一個主窗口和多個對話框組成。編輯器

    QT中直接支持主窗口,QMainWindow是QT中主窗口的基類,是繼承於QWidget類的容器型組件。ide

    QMainWindow內部封裝了菜單欄、工具欄、中心組件、停靠組件、狀態欄等。       
函數

    QMainWindow內置了佈局管理器,基本的組件佈局以下:工具

wKioL1glpd_zMhFjAAAwa6zVz9o174.png

2、菜單欄

QT中提供了預約義的與菜單相關的類組件,菜單欄QMenuBar,下拉菜單QMenu,菜單項QAction。佈局

wKiom1glpf6glCWaAACpyc1o3iY491.png

    QMenuBar* mb = menuBar();this

    QMenu* menu = new QMenu("File(&F)");spa

    QAction *action = new QAction(text, NULL);設計

    menu->addAction(action);blog

    mb->addMenu(menu);繼承

快捷鍵設置

     action->setShortcut(QKeySequence(KEY));

    QKeySequence是QT中與快捷鍵相關的類,KEY是QT中表明鍵值的常量。

3、工具欄

工具欄是應用程序中集成各類功能使用快捷方式的區域,不是應用程序必須存在的組件,工具欄的元素能夠是各類窗口組件,但一般以圖標按鈕的方式存在。

    QT中提供了預約義的工具欄相關組件,工具欄QToolBar和快捷項QAction。

wKiom1glph3SczzfAACF2kKVHlg863.png

1、工具欄使用方法

    //建立工具欄

    QToolBar *tb = addToolBar("ToolBar");

        //建立工具欄選項

        QAction *action = new QAction("", NULL);

    action->setToolTip(Open);

    action->setIcon(QIcon(/res/pic/open.png));

        //將工具欄選項加入工具欄

    tb->addAction(action);

2QToolBar實用函數

    void setFloatable(bool floatable)    設置工具欄爲浮動

    void setMovable(bool movable)    設置工具欄爲可移動

    void setIconSize(const QSize & iconSize)    設置工具欄的圖標大小

3、工具欄實例

    QTollBar組件中能夠加入QT中的任意QWidget組件。

     QToolBar* tb = addToolBar("Tool Bar");

    QAction* action = new QAction("", NULL);

 

    tb->setFloatable(false);

    tb->setMovable(false);

 

    action->setToolTip("Open");

    action->setIcon(QIcon(":/Res/open.png"));

 

    tb->addAction(action);

 

    QPushButton* b = new QPushButton("Button");

    QLabel* l = new QLabel("Label");

    QLineEdit* e = new QLineEdit();

 

    tb->addWidget(b);

    tb->addWidget(l);

    tb->addWidget(e);

4、狀態欄

    狀態欄是應用程序中輸出簡要信息的區域,通常位於窗口的底部。狀態欄顯示的消息類型以下:

A、實時消息,如當前程序狀態

B、永久消息,如程序版本,開發機構

C、進度消息,進度顯示

QT中提供了預約義的狀態欄相關組件狀態欄QStatusBar,QStatusBar是容器型組件,能夠是任意組件QWidget的父組件。

wKiom1glpj7RdsgYAABSeazyFAg766.png

QT狀態欄的通常設計原則:

A、狀態欄左邊區域用於輸出實時消息

B、狀態欄右邊區域用於輸出永久消息

所以,addWidget函數用於在狀態欄左邊區域添加組件,addPermanentWidget函數用於在狀態欄右邊區域添加組件。

狀態欄使用方法以下:

 QStatusBar* sb = statusBar();

    QLabel* label = new QLabel("CopyRight @ Scorpio Studio 2016");

    if( label != NULL )

    {

        line.setMinimumWidth(120);

        line.setAlignment(Qt::AlignCenter);

        line.setText("Ln: 1    Col: 1");

        label->setMinimumWidth(160);

        label->setAlignment(Qt::AlignCenter);

        sb->addPermanentWidget(new QLabel());

        sb->addPermanentWidget(&line);

        sb->addPermanentWidget(label);

    }

5、文本編輯組件

    QT中預約義了三種文本編輯組件,用於知足不一樣的開發需求。

    A、QLineEdit單行文本編輯組件

    B、QTextEdit多行富文本編輯組件

    C、QPlainTextEdit多行普通文本編輯組件

    QT文本編輯組件的類繼承圖:

wKioL1glpl-i5t0pAAB15EH9KoY622.png

QT中的文本編輯組件內置了右鍵彈出和快捷鍵功能。

文本編輯器的使用:

//設置文本編輯器的父組件

    mainEditor.setParent(this);

//設置文本編輯器爲中央組件

    setCentralWidget(&mainEditor);

相關文章
相關標籤/搜索