码迷,mamicode.com
首页 > 其他好文 > 详细

Qt浮动窗口

时间:2015-03-10 13:35:49      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:

  • 通过QDockWidget类来实现
  • 关键接口
    • void    setFeatures(DockWidgetFeatures features)
      • DockWidgetFeatures  是一个  QFlags<DockWidgetFeature> 类型,用起来有点类似linux里经常用的按位与或的flag(但是用起来更安全,0x00000002可以和任何其他数例如0x01000000组合,甚至可能没有这个flag,但是用用QFlags你只能用枚举里的几个值去组合)。
      • 其中DockWidgetFeature  是一个枚举量
        • enum    DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, DockWidgetVerticalTitleBar, AllDockWidgetFeatures, NoDockWidgetFeatures }
      • 技术分享
      • setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable)
    • void    setAllowedAreas(Qt::DockWidgetAreas areas)
      • 其中DockWidgetAreas 定义如下
        • 技术分享
      • 关于Qt的窗口区域
        • 技术分享
  • 详尽的资料参考Qt Help,有demo,也有类文档
  • 简单demo
    • win7 Qt5.4
    • 来自http://www.cnblogs.com/hanzhaoxin/archive/2012/11/16/2774097.html 
    • mainwindow.cpp
        1. #include "mainwindow.h"
        2. #include <QDockWidget>
        3. #include <QTextEdit>
        4. #include "ui_mainwindow.h"
        5. MainWindow::MainWindow(QWidget *parent) :
        6. QMainWindow(parent),
        7. ui(new Ui::MainWindow)
        8. {
        9. ui->setupUi(this);
        10. setWindowTitle(tr("Dock Windows"));
        11. QTextEdit *edt = new QTextEdit(tr("Main Window"),this);
        12. setCentralWidget(edt); //把edt设置为中心控件
        13. //停靠窗口1:
        14. QDockWidget *dockWidget1 = new QDockWidget(tr("Dock Window 1"),this);
        15. dockWidget1->setFeatures(QDockWidget::DockWidgetMovable);
        16. dockWidget1->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
        17. QTextEdit *edt1 = new QTextEdit(tr("Window 1"));
        18. dockWidget1->setWidget(edt1);
        19. addDockWidget(Qt::RightDockWidgetArea,dockWidget1);
        20. //停靠窗口2:
        21. QDockWidget *dockWidget2 = new QDockWidget(tr("Dock Window 2"),this);
        22. dockWidget2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);
        23. QTextEdit *edt2 = new QTextEdit(tr("Window 2"));
        24. dockWidget2->setWidget(edt2);
        25. addDockWidget(Qt::LeftDockWidgetArea,dockWidget2);
        26. //停靠窗口3:
        27. QDockWidget *dockWidget3 = new QDockWidget(tr("Dock Window 3"),this);
        28. dockWidget3->setFeatures(QDockWidget::AllDockWidgetFeatures);
        29. QTextEdit *edt3 = new QTextEdit(tr("Window 3"));
        30. dockWidget3->setWidget(edt3);
        31. addDockWidget(Qt::BottomDockWidgetArea,dockWidget3);
        32. }
        33. MainWindow::~MainWindow()
        34. {
        35. delete ui;
        36. }




Qt浮动窗口

标签:

原文地址:http://www.cnblogs.com/dongdongweiwu/p/4325620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!