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

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


http://www.kler.cn/a/599912.html

相关文章:

  • 信息系统运行管理员教程2--信息系统运维的组织与管理
  • claude-3-7-sonnet-20250219 支持深度思考,流式输出
  • docker重装环境失败,可能是缓存问题
  • 【赵渝强老师】达梦数据库的物理存储结构
  • React组件复用
  • PTA 1097-矩阵行平移
  • 『 C++ 』原生字符串:让字符串处理更轻松
  • LabVIEW液压振动锤控制系统
  • Pytest的参数化测试
  • 23 种设计模式中的模板模式
  • 穿越之程序员周树人的狂人日记Part3__人机共生纪元
  • 淘宝API关键词接口详解(实战案例)
  • Android 13组合键截屏功能的彻底移除实战
  • IDI_APPLICATION 与 IDC_ARROW资源存放在工程的哪个路径?
  • 基于简单神经网络的线性回归
  • F#语言的游戏优化
  • Stable Diffusion教程:图生图_stable diffusion 图生图
  • vue 事件修饰符
  • 【cuda学习日记】8.2 GPU加速库 --cuBLAS
  • 初始OpenCV