Qt之布局管理——停靠窗口

    xiaoxiao2022-06-30  75

    QDockWidget类继承与QWidget类,用于停靠窗口的管理。在主窗口中,先设置中心控件,然后实例化QDockWidget对象,通过setFeatures( )设置停靠窗口的窗体特性,通过

    setAllowedAreas(  )设置窗体可停靠的区域。具体如下:


    void setFeatures(DockWidgetFeatures features )

    QDockWidget::DockWidgetClosable停靠窗可关闭QDockWidget::DockWidgetMovable停靠窗可移动QDockWidget::DockWidgetFloatable停靠窗可浮动QDockWidget::DockWidgetVerticalTitleBar标题栏垂直放置QDockWidget::AllDockWidgetFeatures可关闭、可移动、可浮动QDockWidget::NoDockWidgetFeatures不可关闭、不可移动、不可浮动

    void setAllowedAreas ( Qt::DockWidgetAreas areas )

    Qt::LeftDockWidgetArea可在中央控件的左侧停靠Qt::RightDockWidgetArea可在中央控件的右侧停靠Qt::TopDockWidgetArea可在中央控件的顶部停靠Qt::BottomDockWidgetArea可在中央控件的底部停靠Qt::AllDockWidgetAreas可在中央控件的任意方向停靠Qt::NoDockWidgetArea只可停靠在插入处

    dockwindows.h

    #ifndef DOCKWINDOWS_H  #define DOCKWINDOWS_H    #include <QtGui>    class DockWindows : public QMainWindow  {      Q_OBJECT    public:      DockWindows(QWidget *parent = 0, Qt::WFlags flags = 0);      ~DockWindows();  };    #endif // DOCKWINDOWS_H  

    dockwindows.cpp

    #include "dockwindows.h"  #include <QDockWidget>  DockWindows::DockWindows(QWidget *parent, Qt::WFlags flags)      : QMainWindow(parent, flags)  {      setWindowTitle(tr("Dock Windows"));      QTextEdit *edt = new QTextEdit(tr("Main Window"),this);      setCentralWidget(edt);  //把edt设置为中心控件            //停靠窗口1:      QDockWidget *dockWidget1 = new QDockWidget(tr("Dock Window 1"),this);      dockWidget1->setFeatures(QDockWidget::DockWidgetMovable);      dockWidget1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);      QTextEdit *edt1 = new QTextEdit(tr("Window 1"));      dockWidget1->setWidget(edt1);      addDockWidget(Qt::RightDockWidgetArea,dockWidget1);        //停靠窗口2:      QDockWidget *dockWidget2 = new QDockWidget(tr("Dock Window 2"),this);      dockWidget2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);      QTextEdit *edt2 = new QTextEdit(tr("Window 2"));      dockWidget2->setWidget(edt2);      addDockWidget(Qt::LeftDockWidgetArea,dockWidget2);        //停靠窗口3:      QDockWidget *dockWidget3 = new QDockWidget(tr("Dock Window 3"),this);      dockWidget3->setFeatures(QDockWidget::AllDockWidgetFeatures);      QTextEdit *edt3 = new QTextEdit(tr("Window 3"));      dockWidget3->setWidget(edt3);      addDockWidget(Qt::BottomDockWidgetArea,dockWidget3);        }    DockWindows::~DockWindows()  {    }

    FROM:  http://www.cnblogs.com/hanzhaoxin/archive/2012/11/16/2774097.html

    转载请注明原文地址: https://ju.6miu.com/read-1126120.html

    最新回复(0)