zoukankan      html  css  js  c++  java
  • 停靠窗口QDockWidget

    概述

    停靠窗口QDockWidget类是应用程序中经常用到的,设置停靠窗口的一般流程如下
    (1)创建一个QDockWidget对象的停靠窗口
    (2)设置此停靠窗口的属性,通常调用setFeatures()及setAllowedAreas()两种方法
    (3)新建一个要插入停靠窗体的控件,常用的有QListWidget和QTextEdit
    (4)将控件插入停靠窗体,调用QDockWidget的setWidget()方法
    (5)使用addDockWidget()方法在MainWindow中加入此停靠窗体

    代码

    #include "dockwindows.h"
    #include <QTextEdit>
    #include <QDockWidget>
    
    DockWindows::DockWindows(QWidget *parent)
        : QMainWindow(parent)
    {
        setWindowTitle(tr("DockWindwos"));  //设置主窗口的标题栏文字
        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 move 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);  //可关闭,可浮动
        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();
        te2->setText(tr("Window3, the dock widget can be closed ,moved,and"
                        "floated"));
        dock->setWidget(te3);
        addDockWidget(Qt::RightDockWidgetArea,dock);
    
    
    }
    
    setFeatures(DockWidgetFeatures features)设置停靠窗体的特性
    QDockWidget::DockWidgetClosable  //停靠窗体可以关闭
    QDockWidget::DockWidgetFloatable  //停靠窗体可浮动
    QDockWidget::DockWidgetMovable  //停靠窗体可移动
    QDockWidget::AllDockWidgetFeatures  //此参数表示拥有停靠窗体的全部属性
    QDockWidget::NoDockWidgetFeatures  //不可移动,不可关闭,不可浮动
    此参数可以采用或(|)的方式对停靠窗体进行特性的设定
    
    setAllowedAreas()设置停靠窗体可停靠的区域
    Qt::LeftDockWidgetArea  //可在主窗口的左侧停靠
    Qt::RightDockWidgetArea  //可在主窗口的右侧停靠
    Qt::TopDockWidgetArea  //可在主窗口的上侧停靠
    Qt::BottomDockWidgetArea  //可在停靠主窗口的底部停靠
    Qt::AllDockWidgetAreas  //可在主窗口的任意部分停靠
    Qt::NoDockWidgetArea  //只停靠在插入处
    此参数可以采用或(|)的方式对停靠区域进行设置
    

    运行结果

    参考资料
    1 《Qt5开发及实例》

  • 相关阅读:
    快读
    状态压缩-动态规划
    数论入门_扩展欧几里得算法
    luogu P3383线性筛素数(埃氏筛)
    luogu P1843奶牛晒衣服
    git 常用方法
    javascript 数组排序
    深入理解javascript函数参数
    深入理解call apply bind方法
    移动H5前端性能优化
  • 原文地址:https://www.cnblogs.com/Manual-Linux/p/9314765.html
Copyright © 2011-2022 走看看