当前位置:   article > 正文

Qt 停靠悬浮窗口 使用实例_qt悬浮窗口

qt悬浮窗口

工程中我们常用到悬浮窗口,Qt 实现停靠和悬浮使用类QDockWidget

效果:

悬浮窗口

这里主要介绍怎么使用;

Part1.使用流程:

1. 创建QDockWidget对像的停靠窗体;

QDockWidget *dw  = new QDockWidget("dock window 1",this);

2.使用 setFeatures 置停靠特性

  1. //设置停靠窗口特性,可移动,可关闭
  2. dw->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);

主要特性:

  1. QDockWidget::DockWidgetClosable // 停靠窗口可关闭
  2. QDockWidget::DockWidgetMovable // 停靠窗口可移动
  3. QDockWidget::DockWidgetFloatable // 停靠窗口可浮动
  4. QDockWidget::AllDockWidgetFeatures // 停靠窗口 可关闭、可移动、可浮动 所有特性
  5. QDockWidget::NoDockWidgetFeatures // 停靠窗口 不可关闭、不可移动、不可浮动
3.使用  setAllowedAreas 停靠区域
  1. //设置可停靠区域为主窗口左边和右边
  2. dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
  3. //各区域设定可以通过或(|)的方式进行;
  4. dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

主要特性:

  1. Qt::RightDockWidgetArea // 可在主窗口的右侧停靠
  2. Qt::TopDockWidgetArea // 可在主窗口的顶端停靠
  3. Qt::BottomDockWidgetArea // 可在主窗口的底部停靠
  4. Qt::AllDockWidgetAreas // 可在主窗口的任意部位停靠
  5. Qt::NoDockWidgetArea // 只可停靠在插入处

4.在主窗口加入悬浮窗 使用 addDockWidget ,需要设置停放位置

addDockWidget(Qt::LeftDockWidgetArea,dw);

code:

dockwindow.h
  1. #ifndef DOCKWINDOW_H
  2. #define DOCKWINDOW_H
  3. #include <QWidget>
  4. #include <QMainWindow>
  5. #pragma execution_character_set("utf-8")
  6. class DockWindow : public QMainWindow
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit DockWindow(QWidget *parent = nullptr);
  11. signals:
  12. };
  13. #endif // DOCKWINDOW_H

dockwindow.cpp

  1. #include "dockwindow.h"
  2. #include<QTextEdit>
  3. #include <QDockWidget>
  4. DockWindow::DockWindow(QWidget *parent)
  5. : QMainWindow(parent)
  6. {
  7. setWindowTitle("main");
  8. //停靠窗口1
  9. QDockWidget *dw = new QDockWidget("dock window 1",this);
  10. //设置停靠窗口特性,可移动,可关闭
  11. dw->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
  12. //设置可停靠区域为主窗口左边和右边
  13. dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
  14. QTextEdit *dte = new QTextEdit("DockWindow First");
  15. dw->setWidget(dte);
  16. addDockWidget(Qt::LeftDockWidgetArea,dw);
  17. //停靠窗口2
  18. QDockWidget *dw2 = new QDockWidget("dock window 2",this);//构建停靠窗口,指定父类
  19. dw2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可浮动,可关闭
  20. QTextEdit *dte2 = new QTextEdit("DockWindow Second");
  21. dw2->setWidget(dte2);
  22. addDockWidget(Qt::RightDockWidgetArea,dw2);
  23. //停靠窗口3
  24. QDockWidget *dw3 = new QDockWidget("dock window 3",this);//构建停靠窗口,指定父类
  25. dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性
  26. QTextEdit *dte3 = new QTextEdit("DockWindow Third");
  27. dw3->setWidget(dte3);
  28. addDockWidget(Qt::RightDockWidgetArea,dw3);
  29. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/962569
推荐阅读
相关标签
  

闽ICP备14008679号