Qt 停靠悬浮窗口 使用实例

2023-11-15

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

效果:

悬浮窗口

这里主要介绍怎么使用;

Part1.使用流程:

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

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

2.使用 setFeatures 置停靠特性

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

主要特性:

QDockWidget::DockWidgetClosable // 停靠窗口可关闭
QDockWidget::DockWidgetMovable // 停靠窗口可移动
QDockWidget::DockWidgetFloatable // 停靠窗口可浮动
QDockWidget::AllDockWidgetFeatures // 停靠窗口 可关闭、可移动、可浮动 所有特性
QDockWidget::NoDockWidgetFeatures // 停靠窗口 不可关闭、不可移动、不可浮动
 
3.使用  setAllowedAreas 停靠区域
    //设置可停靠区域为主窗口左边和右边
    dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

//各区域设定可以通过或(|)的方式进行;
    dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

主要特性:

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

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

addDockWidget(Qt::LeftDockWidgetArea,dw);

code:

dockwindow.h
#ifndef DOCKWINDOW_H
#define DOCKWINDOW_H

#include <QWidget>
#include <QMainWindow>
#pragma execution_character_set("utf-8")
class DockWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit DockWindow(QWidget *parent = nullptr);

signals:

};

#endif // DOCKWINDOW_H

dockwindow.cpp

#include "dockwindow.h"


#include<QTextEdit>
#include <QDockWidget>

DockWindow::DockWindow(QWidget *parent)
    : QMainWindow(parent)
{

    setWindowTitle("main");

    //停靠窗口1
    QDockWidget *dw = new QDockWidget("dock window 1",this);

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

    //设置可停靠区域为主窗口左边和右边
    dw->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

    QTextEdit *dte = new QTextEdit("DockWindow First");
    dw->setWidget(dte);
    addDockWidget(Qt::LeftDockWidgetArea,dw);

    //停靠窗口2
    QDockWidget *dw2 = new QDockWidget("dock window 2",this);//构建停靠窗口,指定父类

    dw2->setFeatures(QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);//设置停靠窗口特性,可浮动,可关闭

    QTextEdit *dte2 = new QTextEdit("DockWindow Second");
    dw2->setWidget(dte2);
    addDockWidget(Qt::RightDockWidgetArea,dw2);

    //停靠窗口3
    QDockWidget *dw3 = new QDockWidget("dock window 3",this);//构建停靠窗口,指定父类

    dw3->setFeatures(QDockWidget::AllDockWidgetFeatures);//设置停靠窗口特性,具有全部停靠窗口的特性

    QTextEdit *dte3 = new QTextEdit("DockWindow Third");
    dw3->setWidget(dte3);
    addDockWidget(Qt::RightDockWidgetArea,dw3);

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 停靠悬浮窗口 使用实例 的相关文章

随机推荐

  • 看完这篇 教你玩转渗透测试靶机Vulnhub——Grotesque:3.0.1

    Vulnhub靶机Grotesque 3 0 1渗透测试详解 Vulnhub靶机介绍 Vulnhub靶机下载 Vulnhub靶机安装 信息收集 漏洞发现 LFI漏洞利用 本地文件包含漏洞 SSH登入 提权 获取FLAG Vulnhub靶机渗
  • pyqt 万能简易模板(四)

    本文将介绍一些pyqt5基本使用技巧 不借助Qtdesigner 而是全部用代码编写 将实现页面布局 窗口自适应 字体自适应等功能 一般的简易工程均可使用 简单高效 对于pyqt5的一些基本技巧 本文内容基本够用 可以快速实现自己想要的界面
  • Java中的如何检测字符串是否相等

    文章目录 0 写在前面 1 介绍 2 举例 3 写在后面 0 写在前面 实际业务中有时候得检测字符串是否相等的场景 例如在数据库中提取uuid 检测两个uuid是否相等就需要用到这个地方 1 介绍 可以使用equals方法检测两个字符串是否
  • 数据预处理、特征工程和特征学习

    神经网络的数据预处理 数据预处理的目的是使原始数据更适于用神经网络处理 包括向量化 标准化 处理缺失值和特征提取 1 向量化 神经网络的所有输入和目标都必须是浮点数张量 特定情况下为整数张量 无论处理什么数据 都必须先将其转换为张量 这一步
  • Spring getBean方法源码解析

    User user User beanFactory getBean user 注 User为一普通bean 查看方法 AbstractBeanFactory getBean public Object getBean String nam
  • 朴素贝叶斯 Naive Bayes

    Naive Bayes 特点 朴素贝叶斯是典型的生成学习方法 朴素贝叶斯的基本假设是条件独立性 强假设 若条件之间存在概率依存关系 模型变为贝叶斯网络 基于上一条的假设 朴素贝叶斯方法高效 但分类性能受损 将输入的 x 分类到后验概率最大的
  • 五号黯区靶场 mysql 注入之limit注入记录

    前言 感谢五号黯区团队 limit 功能 通常在分页处 比如page 字段 可能存在 limit注入 不存在order by http bug cc 86 limit limit php p 1 访问靶场如下图 原数据库语句如下 selec
  • python数组做参数_python函数传递数组参数吗

    函数是任何一门编程语言都不可缺少的 而且也是非常重要的一部分 Python中函数的参数 可以分为以下几类 位置参数 有时也称必备参数 指的是必须按照正确的顺序将实际参数传到函数中 换句话说 调用函数时传入实际参数的数量和位置都 必须和定义函
  • vue 项目使用通过经纬度显示地图

    传入经纬度 和缩放值
  • 最新的一篇视觉Transformer综述!

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 作者 闪闪红星闪闪 已授权转载 源 知乎 https zhuanlan zhihu com p 433048484 CVer公众号已汇集三篇视觉Transformer
  • Tizen手机系统新“鲶鱼”

    转自 http mobile 51cto com comment 380564 htm 手机操作系统很有可能在2013年上演 巅峰之战 Tizen等基于HTML5技术的新产品 将成为搅动市场的鲶鱼 AD 2013云计算架构师峰会课程资料下载
  • 回归分析的假设条件

    数据什么样就能扔进回归分析回归分析
  • registry :分支操作值Archive有什么用?

    1 美图 2 背景 想知道registry 分支操作值Archive有什么用 于是点击修改了一下 修改之后看着好像没什么变化 结果发现不能更改了 只能添加新的版本了 但是服务器上改了之后导致 Registry THERE IS NOT VE
  • 数据库基础——10.子查询

    这篇文章来讲一下数据库的子查询 目录 1 需求分析与问题解决 1 1 实际问题 1 2 子查询的基本使用 1 3 子查询的分类 2 单行子查询 2 1 单行比较操作符 2 2 代码示例 2 3 HAVING 中的子查询 2 4 CASE中的
  • Vue详解及综合案例

    一 Vue简介 1 1 简介 Vue 读音 vju 类似于 view 是一套用于构建用户界面的渐进式的js框架 发布于 2014 年 2 月 与其它大型框架不同的是 Vue 被设计为可以自底向上逐层应用 Vue 的核心库只关注视图层 不仅易
  • CH347读取MPU6050传感器数据和显示

    CH347读取MPU6050传感器数据和显示 MPU6050 是一款集成了六轴加速度计和陀螺仪的微电子机械系统 MEMS 传感器 它由 InvenSense 现为 TDK 公司开发 是一种广泛应用于姿态估计 运动追踪和稳定控制等领域的常用传
  • 链表 删除链表中的节点

    LC 删除链表中的节点 请编写一个函数 用于 删除单链表中某个特定节点 在设计函数时需要注意 你无法访问链表的头节点 head 只能直接访问 要被删除的节点 题目数据保证需要删除的节点 不是末尾节点 输入 head 4 5 1 9 node
  • ERROR: Could not find a version that satisfies the requirement xxxxx (from versions: none)解决办法

    报错 ERROR Could not find a version that satisfies the requirement tensorboard 1 14 0 from versions none ERROR No matching
  • css中使用url不提示文件路径/不加载文件名

    情况一 若你输入 时不提示文件名时 检查你的插件 在插件商店里找到上述两款插件并且安装 安装完成后若出现 情况二 提示文件回车却不出现文件扩展名 如图 此时检查vscode中的设置 vscode左下的设置找到 L path autocomp
  • Qt 停靠悬浮窗口 使用实例

    工程中我们常用到悬浮窗口 Qt 实现停靠和悬浮使用类QDockWidget 效果 悬浮窗口 这里主要介绍怎么使用 Part1 使用流程 1 创建QDockWidget对像的停靠窗体 QDockWidget dw new QDockWidge