Qt5開發及實例學習之停靠窗口QDockWidget類

Qt之停靠窗口QDockWidget類
設置停靠窗口的通常流程
一、建立一個QDockWidget對象的停靠窗口
二、設置此停靠窗體的屬性,一般調用setFeatures()以及setAllowAreas()兩種方法
三、新建一個要插入停靠窗口的控件,經常使用的有QListWidget和QTextEdit
四、將控件插入停靠窗口,調用QDockWidget的setWidget()方法
五、使用addDockWidget方法在MainWindow中加入此停靠窗口windows

步驟:
一、新建Qt GUI應用,項目名稱DockWindows,基類選擇"QMainWindow",類名選擇"DockWindows",取消"建立界面"
二、修改DockWindows.h,DockWindows.cpp文件,在構造函數中實現窗口的初始化以及功能實現函數

DockWindows.hui

#ifndef DOCKWINDOWS_H
#define DOCKWINDOWS_H

#include <QMainWindow>


class DockWindows : public QMainWindow
{
    Q_OBJECT

public:
    explicit DockWindows(QWidget *parent = 0);
    ~DockWindows();

};

#endif // DOCKWINDOWS_H

 

DockWindows.cppthis

#include "dockwindows.h"
#include "ui_dockwindows.h"
#include<QTextEdit>
#include<QDockWidget>

DockWindows::DockWindows(QWidget *parent) :
    QMainWindow(parent)
{
    setWindowTitle(tr("windows"));  //設置主窗口的標題欄文字
    QTextEdit *te = new QTextEdit(this);  //定義一個QTextEdit對象做爲主窗口
    te->setText(tr("Main Window"));
    te->setAlignment(Qt::AlignCenter);
    setCentralWidget(te);     //將此編輯框設爲主窗口的中央窗體
    //停靠窗口1
    QDockWidget *dock = new QDockWidget(tr("DockWindow1"), this);
    dock->setFeatures(QDockWidget::DockWidgetMovable);  //可移動
    dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
    //能夠在主窗口的左/右邊停靠
    QTextEdit *te1 =new QTextEdit();
    te1->setText(tr("Window1,The dock widget can be moved between docks by the user" ""));
    dock->setWidget(te1);
    addDockWidget(Qt::RightDockWidgetArea,dock);

    //停靠窗口2
    dock=new QDockWidget(tr("DockWindow2"),this);
    dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); //可關閉、可浮動
    //  QDockWidget::NoDockWidgetFeatures   //不能夠關閉,不能夠移動,不能夠浮動
    dock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);
    //頂端停靠,底部停靠
    QTextEdit *te2 =new QTextEdit();
    te2->setText(tr("Window2,The dock widget can be detached from the main window,""and floated as an independent window, and can be closed"));
    dock->setWidget(te2);
    addDockWidget(Qt::RightDockWidgetArea,dock);

      //停靠窗口3
      dock=new QDockWidget(tr("DockWindow3"),this);
      dock->setFeatures(QDockWidget::AllDockWidgetFeatures);     //所有特性
      QTextEdit *te3 =new QTextEdit();
      te3->setText(tr("Window3,The dock widget can be closed, moved, and floated"));
      dock->setWidget(te3);
      addDockWidget(Qt::RightDockWidgetArea,dock);
}

DockWindows::~DockWindows()
{

}

 

---code

相關文章
相關標籤/搜索