当前位置: 首页 > news >正文

Qt窗口控件之浮动窗口QDockWidget

浮动窗口QDockWidget

QDockWidget 用于表示 Qt 中的浮动窗口,浮动窗口与工具栏类似,可以停靠在主窗口的上下左右位置,也可以单独拖出来作浮动窗口。

1. QDockWidget方法

方法说明
setWidget(QWiget*)用于使浮动窗口能够被添加控件。
setAllowedAreas(Qt::Area)设置浮动窗口允许停靠位置。
Qt::LeftDockWidgetArea 为左侧
Qt::RightDockWidgetArea 为右侧
Qt::TopDockWidgetArea 为顶部
Qt::BottomDockWidgetArea 为底部

2. 使用QDockWidget创建浮动窗口

由于 QDockWidget 并没有自带一个 QWidget 在内部,要想在浮动窗口里添加控件,首先需要将 QWidget 创建并添加到 QDockWidget 中,才能够添加控件到 QDockWidget 中:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QDockWidget* dockWidget=new QDockWidget();
    this->addDockWidget(Qt::LeftDockWidgetArea,dockWidget);//注意第一个参数不可缺省

    QWidget* container = new QWidget();
    dockWidget->setWidget(container);

    QLabel* label=new QLabel("浮动窗口文本");
    QPushButton* button=new QPushButton("浮动窗口按钮");
    QVBoxLayout* Vlayout=new QVBoxLayout();
    Vlayout->addWidget(label);
    Vlayout->addWidget(button);

    container->setLayout(Vlayout);
}

MainWindow::~MainWindow()
{
    delete ui;
}


QDockWidget1

相关文章:

  • 23种设计模式-创建型模式-建造者
  • 基于AWS Endpoint Security(EPS)的全天候威胁检测与响应闭环管理
  • Docker-初级安装及使用
  • 干货分享|DeepSeek技术革命、算力范式重构与场景落地洞察
  • 腾讯面经,有点难度~
  • C++KNN 算法应用痛点:从受噪声干扰到精准预测的突破
  • spring +kotlin 配置redis 和redis的常用方法
  • Python:互斥锁,线程同步及总结
  • 脑启发式AI Agent:解锁人类大脑奥秘,迈向真正的通用人工智能(AGI)
  • Dify - 架构、部署、扩展与二次开发指南
  • 大模型概述
  • spring-security原理与应用系列:总体流程
  • Web Workers 教程
  • 前端知识点---innerHTML和innerText
  • Turtle基本操作(前进、后退、旋转)
  • QT零基础学习之路(十)--QDialog对话框的使用及信息传递
  • el-tree树多选,将选中的树对象中某个字段值改为true,并过滤出所有为true的对象,组成新的数组
  • 开源图生视频模型技术全景解析
  • QT学习笔记(对话框)
  • Next.Js 权限绕过漏洞复现(附脚本)(CVE-2025-29927)
  • 私家车跑“顺风”出事故,意外险赔不赔?
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突
  • “GoFun出行”订单时隔7年扣费后续:平台将退费,双方已和解
  • 南宁一学校发生伤害案件,警方通报:嫌疑人死亡,2人受伤
  • 特朗普公开“怼”库克:苹果不应在印度生产手机
  • 女子七年后才知银行卡被盗刷18万元,警方抓获其前男友