QDockWidget的隐藏玩法:打造可变形用户界面的5种设计模式

什么是BDD测试(行为驱动开发测试)? 本文介绍了BDD测试、使用Python实现BDD测试以及代码示例和说明。有了Python的支持,实现BDD测试变得更加简单易懂,研发和测试人员都应该掌握并应用到实际的工作中,以提高软件开发效率、质量。BDD测试的优点在于,它能够将开发、测试和业务部门融合起来,提高效率和质量。通过BDD测试,可以促进团队成员之间的沟通和协作,从而更好地满足业务需求,减少错误,加快发布速度。通过将测试用例编写为自然语言脚本,BDD测试可以促进业务需求、开发和测试团队之间的沟通和协作,从而提高代码的可读性、可维护性和可重复性。 阅读详情

QDockWidget的隐藏玩法:打造可变形用户界面的5种设计模式

在当今追求高效工作流的时代,用户界面(UI)的灵活性和适应性变得愈发重要。作为Qt框架中的核心组件,QDockWidget远不止是一个简单的可停靠窗口控件。当深入挖掘其潜力时,它能帮助我们构建出令人惊艳的动态界面体验,完美适应从桌面应用到移动设备的各种场景。

1. 可折叠工作区:空间利用的艺术

现代专业软件常常面临一个设计难题:如何在有限屏幕空间内展示大量功能控件而不显得拥挤?通过QDockWidget的智能折叠机制,我们可以创建出既节省空间又不失功能性的界面布局。

核心实现技巧:

// 创建带折叠动画的DockWidget
QDockWidget* createCollapsibleDock(const QString& title, QWidget* content) {
    QDockWidget* dock = new QDockWidget(title);
    dock->setWidget(content);
    dock->setFeatures(QDockWidget::DockWidgetClosable | 
                     QDockWidget::DockWidgetMovable);
    
    // 添加折叠动画
    QPropertyAnimation* anim = new QPropertyAnimation(dock, "minimumWidth");
    anim->setDuration(300);
    anim->setEasingCurve(QEasingCurve::InOutQuad);
    
    QObject::connect(dock, &QDockWidget::topLevelChanged, [=](bool floating) {
        anim->setStartValue(dock->width());
        anim->setEndValue(floating ? 300 : 50);
        anim->start();
    });
    
    return dock;
}

实用设计模式对比:

模式类型优点适用场景实现复杂度
自动折叠节省空间,专注内容绘图软件工具面板★★☆
手动折叠用户控制,灵活度高开发环境侧边栏★☆☆
智能折叠根据内容自动调整数据分析仪表盘★★★
分组折叠相关功能集中管理多媒体编辑套件★★☆

提示:为提升用户体验,建议在折叠状态保留关键功能按钮,并通过ToolTip提示完整功能。

2. 自适应多屏布局:响应式设计的Qt实现

在多显示器工作环境日益普及的今天,QDockWidget的跨屏适应能力成为专业应用的必备特性。通过精心设计的布局策略,可以让应用界面在不同屏幕尺寸和分辨率下都能保持最佳工作状态。

关键技术实现:

// 监视屏幕变化并调整布局
void MainWindow::setupMultiScreenAdaption() {
    QList<QScreen*> screens = QGuiApplication::screens();
    
    connect(qApp, &QGuiApplication::screenAdded, this, [=](QScreen* screen){
        updateDockLayoutForScreen(screen);
    });
    
    connect(qApp, &QGuiApplication::screenRemoved, this, [=](QScreen* screen){
        consolidateDockWidgets();
    });
    
    // 初始布局
    if(screens.count() > 1) {
        distributeDocksAcrossScreens();
    }
}

void MainWindow::updateDockLayoutForScreen(QScreen* screen) {
    QRect geometry = screen->geometry();
    QDockWidget* toolsDock = findChild<QDockWidget*>("toolsDock");
    
    if(toolsDock && !toolsDock->isFloating()) {
        toolsDock->setFloating(true);
        toolsDock->move(geometry.left() + 50, geometry.top() + 100);
        toolsDock->resize(300, geometry.height() - 200);
    }
}

多屏布局策略矩阵:

  • 主从式布局:主屏幕显示核心内容,副屏幕放置工具面板
  • 功能分区布局:不同屏幕专用于特定功能模块
  • 镜像布局:保持各屏幕界面一致性(适合演示场景)
  • 动态负载均衡:根据屏幕尺寸自动分配界面元素

在实际项目中,我发现结合Qt的QWindow和QScreenAPI可以实现更精细的多屏控制。例如,可以将属性编辑器固定在设计师的主显示器,而将资源管理器延伸到副屏,这种布局在UI设计工具中特别有效。

3. 浮动工具集:移动时代的界面创新

随着触摸屏设备的普及,传统的固定工具栏模式已无法满足移动场景的需求。QDockWidget的浮动特性为创建移动友好的工具集提供了完美解决方案。

移动优化实现要点:

// 创建触摸友好的浮动工具Dock
QDockWidget* createTouchToolDock(QMainWindow* parent) {
    QDockWidget* dock = new QDockWidget(parent);
    dock->setFloating(true);
    dock->setFeatures(QDockWidget::DockWidgetMovable |
                     QDockWidget::DockWidgetFloatable);
    
    // 触摸屏优化
    dock->setMinimumSize(300, 200);
    QWidget* content = new QWidget(dock);
    QGridLayout* layout = new QGridLayout(content);
    
    // 添加大尺寸触摸按钮
    for(int i=0; i<6; ++i) {
        QToolButton* btn = new QToolButton(content);
        btn->setFixedSize(80, 80);
        btn->setIconSize(QSize(48,48));
        layout->addWidget(btn, i/3, i%3);
    }
    
    dock->setWidget(content);
    
    // 添加拖动边界
    dock->installEventFilter(new TouchDragFilter(dock));
    return dock;
}

触摸交互增强技巧:

  • 将QToolButton尺寸放大至少60x60像素
  • 增加按钮间的间距防止误触
  • 实现磁性停靠效果,当靠近屏幕边缘时自动吸附
  • 添加长按手势调出上下文菜单
  • 使用高对比度颜色提高户外可视性

在平板设备上测试时,我发现为浮动工具添加半透明背景能显著提升使用体验,特别是在叠加在内容上方时。这可以通过样式表简单实现:

QDockWidget {
    background-color: rgba(240, 240, 240, 220);
    border: 1px solid #ccc;
    border-radius: 8px;
}

4. 画布吸附面板:创意工作流的加速器

对于图形设计、视频编辑等创意软件,工具面板与工作画布的高效交互至关重要。QDockWidget的智能吸附功能可以创造出流畅的"工具-画布"工作流。

高级吸附逻辑实现:

// 画布吸附管理器
class CanvasSnapManager : public QObject {
public:
    CanvasSnapManager(QMainWindow* mainWin) : QObject(mainWin) {
        m_mainWindow = mainWin;
        m_snapMargin = 15; // 吸附距离阈值
    }
    
    bool eventFilter(QObject* watched, QEvent* event) override {
        QDockWidget* dock = qobject_cast<QDockWidget*>(watched);
        if(!dock || !dock->isFloating()) return false;
        
        if(event->type() == QEvent::Move) {
            checkSnapToCanvas(dock);
        }
        return false;
    }
    
private:
    void checkSnapToCanvas(QDockWidget* dock) {
        QWidget* canvas = m_mainWindow->centralWidget();
        QRect canvasRect = canvas->geometry();
        QRect dockRect = dock->geometry();
        
        // 检查左侧吸附
        if(abs(dockRect.right() - canvasRect.left()) < m_snapMargin) {
            dock->move(canvasRect.left() - dockRect.width() + 2, dockRect.y());
        }
        // 检查右侧吸附
        else if(abs(dockRect.left() - canvasRect.right()) < m_snapMargin) {
            dock->move(canvasRect.right() - 2, dockRect.y());
        }
    }
    
    QMainWindow* m_mainWindow;
    int m_snapMargin;
};

吸附类型性能对比:

吸附类型响应延迟(ms)CPU占用率用户体验评分
实时吸附5-8中★★★★☆
释放吸附1-2低★★★☆☆
快捷键吸附即时低★★★★☆
智能预测吸附10-15高★★★★★

在Photoshop等专业软件中,面板吸附不仅仅是位置对齐,还包括功能联动。例如,当颜色面板吸附到画布右侧时,可能会自动切换为精简模式。这种深度集成可以通过Qt的信号槽机制实现:

connect(colorDock, &QDockWidget::dockLocationChanged, [=](){
    if(colorDock->isFloating()) {
        showAdvancedColorControls();
    } else {
        showCompactColorControls();
    }
});

5. AR界面动态锚点:未来交互的雏形

虽然增强现实(AR)界面尚未成为主流,但通过QDockWidget模拟AR中的空间锚定效果,我们可以提前探索未来交互的可能性。这种技术特别适合需要多任务处理的专业场景。

动态锚点实现方案:

// AR风格动态锚定
void MainWindow::setupARDockBehavior() {
    m_arDock = new QDockWidget("AR Panel", this);
    m_arDock->setFeatures(QDockWidget::DockWidgetMovable);
    
    // 创建3D场景视图
    QWidget* arView = createARView();
    m_arDock->setWidget(arView);
    
    // 添加运动追踪
    m_arTimer = new QTimer(this);
    connect(m_arTimer, &QTimer::timeout, this, &MainWindow::updateARDockPosition);
    m_arTimer->start(50); // 20fps更新
    
    // 初始位置
    m_arDock->setFloating(true);
    m_arDock->move(100, 100);
}

void MainWindow::updateARDockPosition() {
    if(!m_arDock->isVisible()) return;
    
    // 获取"虚拟世界"坐标(这里简化为例)
    QPoint targetPos = calculateARPositionInWorld();
    
    // 平滑移动
    QPoint currentPos = m_arDock->pos();
    QPoint newPos = currentPos + (targetPos - currentPos) * 0.2;
    m_arDock->move(newPos);
    
    // 动态透明度
    int distance = QLineF(currentPos, targetPos).length();
    qreal opacity = qBound(0.7, 1.0 - distance/500.0, 1.0);
    m_arDock->setWindowOpacity(opacity);
}

AR界面设计原则:

  1. 空间记忆:保持界面元素在3D空间中的相对位置稳定
  2. 焦点跟随:重要工具应自动朝向用户视角
  3. 距离衰减:远距离界面元素可以适当透明化
  4. 手势兼容:支持触摸和空中手势控制
  5. 环境适应:根据背景色自动调整界面对比度

在原型测试中,我发现为动态锚点添加物理弹簧效果能显著提升使用体验。这可以通过简单的物理模拟实现:

// 添加弹簧效果的Dock移动
void ARDockSpring::updatePosition() {
    QPointF force = (m_targetPos - m_currentPos) * m_stiffness;
    m_velocity += force;
    m_velocity *= m_damping;
    m_currentPos += m_velocity;
    
    if(m_dockWidget) {
        m_dockWidget->move(m_currentPos.toPoint());
    }
}

通过这五种创新设计模式,QDockWidget从简单的界面容器进化为强大的交互媒介。在实际项目中组合运用这些技术,可以创造出既美观又高效的现代用户界面。

BDD之单元测试(三):BDD的官方教程 cucumber cucumber是BDD(Behavior-driven development,行为驱动开发)的一个自动化测试的副产品。它使用自然语言来描述测试,使得非程序员可以理解他们。Gherkin是这种自然语言测试的简单语法,而Cucumber是可以执行它们的工具。附cucumber官网链接 cucumber本质上是使用根据正则表达式匹配自然语言,然后依次执行对应的方法,以达到测试的目的。 Gherkin Gherkin是自然语言测试的简单语法。 一个完整的测试是由多个step组成的,s 阅读详情

相关推荐

QDockWidget 是 Qt 中的一个控件类

是 Qt 中的一个控件类,用于实现可停靠的窗口部件(dockable windows)。它允许用户将窗口拖动到主窗口的不同区域,或将其浮动在主窗口外部。通常与一起使用,提供了内置的布局机制,可以将部署在主窗口的不同位置。的典型应用场景包括开发环境中的工具栏、侧边栏等,用户可以通过拖拽自由调整这些窗口的位置或将其隐藏。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 1905

BDD自动化测试

BDD(行为驱动开发)自动化测试在软件测试领域一直在发展。随着agile思想在越来越多的项目中推广,以及非开发人员在项目的更多参与,BDD风格的自动化测试被越来越多项目组采纳并实施。 BDD(Behavior Driven Development),即行为驱动开发,是敏捷开发技术之一,通过自然语言定义系统行为,以功能使用者的角度,编写需求场景,且这些行为描述可以直接形成需求文档,同时也是测试标准。 二、为什么要使用BDD 传统模式下,从客户提出需求,到输出产品,我们会经历以下流程:

生活需要深度 4542

Qt主窗口 之:停靠/悬浮窗口(QDockWidget)

信号可以用于监测停靠窗口的浮动状态的变化。根据应用程序的需求,你可以使用这些函数来自定义停靠窗口的行为和外观。是 Qt 中的一个窗口部件,用于创建可停靠的窗口,通常用于构建多文档接口(MDI)或可定制的用户界面。函数来创建一个切换停靠窗口可见性的操作,以便用户可以通过工具栏切换窗口的显示状态。类提供了一系列函数,用于配置和管理停靠式窗口的行为和外观。允许用户将窗口停靠在应用程序的主窗口周围,或将其拖动到独立的浮动窗口中。允许用户将窗口部件停靠在主窗口的各个位置,如左侧、右侧、上方或下方。

zxf347085420的博客 5655

BDD行为驱动测试实践

else {else {else {Scenario Outline基本上用表中的值替换变量/关键字。表中的每一行都被认为是一个场景。继续使用登录功能的例子。到目前为止,一直在执行一个场景:提供正确的用户名,登录成功。现在,假设我们要检查所有三种可能的输入类型的登录是否成功,这三种类型的输入是用户名,电子邮件地址或电话号码。为了实现这一点,将需要写三个不同的场景,其中每个场景将随输入类型而变化,登录成功。

weixin_42194019的博客 1309

【QT】QDockWidget控件的使用

QDockWidget控件的使用

u011671745的博客 2975

WSL2下用QEMU模拟ARM开发板:从编译uboot到调试全流程(附常见错误解决)

本文详细介绍了在WSL2环境下使用QEMU模拟ARM开发板的完整流程,包括uboot编译、内核调试等关键步骤。通过QEMU模拟vexpress-a9开发板,开发者可以高效搭建嵌入式开发环境,解决常见错误并提升开发效率。

solidity8miner的博客 286

BDD模式的自动化测试初体验

最近在项目上使用到了 cucumber 这个工具,第一次知道自动化测试还能用 BDD(Behavior Driven Development)的形式来写,感觉很有意思同时也体会到了不少好处,所以想和大家分享一些学习过程和心得。

伤心的辣条 817

图形学基础|球谐光照(Spherical Harmonics Lighting)

球谐光照(Spherical Harmonics Lighting) 文章目录球谐光照(Spherical Harmonics Lighting)一、前言二、球谐函数2.1 基函数2.2 投影与重建2.3 应用三、漫反射环境光3.1 IrradianceMap3.2 数学推导3.3 实践参考博文 一、前言 在学习图形渲染的过程中,一直對球谐函数(球谐光照)有一点了解,但没有亲手实现过。 关于球谐函数的数学概念是比较复杂的,笔者也实在无法完全理解,这篇文章只能从做东西的角度来说,公式是如何和代码进行对应的。

【黑键】 1万+

QDockWidget详解

DockWidget可以移动、悬浮,在许多工程软件中,都是使用dock布局窗口,用户可以自由组合窗口界面。

qq_42419483的博客 7426

W5500 TCP服务器状态机详解:从SOCK_CLOSED到SOCK_ESTABLISHED的完整流程

本文深入解析W5500芯片作为TCP服务器时的状态机转换流程,从SOCK_CLOSED到SOCK_ESTABLISHED的完整链路实践。通过硬件协议栈架构分析、状态机全流程拆解及异常处理方案,帮助开发者构建高可靠性的嵌入式网络服务端,优化TCP连接性能与稳定性。

Jerry的专栏 1165

2026年经纬恒润嵌入式笔试试卷带答案

2026年经纬恒润嵌入式笔试试卷涵盖车规MCU选型(如TriCore)、Cortex-M启动流程、指针数组区别、AUTOSAR OS任务调度(静态优先级抢占)、CAN总线特性(终端电阻必要性)、PID控制原理、SOME/IP协议应用等核心知识点。试题聚焦汽车电子系统设计,强调功能安全与实时性要求,涵盖中断处理、Bootloader升级机制、内存布局及可靠性设计(如看门狗、ECC校验)。多选题考察通信协议分层应用,填空题强化基础概念(如MSP初始值、SOME/IP、积分项作用)。整体体现车载嵌入式开发对底层原

Open 76

QT中QDockWidget使用详解

QT中QDockWidget使用详解,QListWidget加入多张图片

aoxuestudy的专栏 1万+

vue:npm安装pnpm报错,npm ERR! code ENOTFOUND,npm ERR! syscall getaddrinfo,npm ERR! errno ENOTFOUND详细排查解决!

vue2 vue3,npm install -g pnpm 安装出现错误,安装pnpm及解决安装失败问题,解决 npm无法安装pnpm问题,npm 安装 pnpm 时 报错 npm ERR! code ENOTFOUND,pnpm无法安装报错,vue npm install -g pnpm安装报错,request to http://registry.cnpmjs.org/pnpm failed, reason: getaddrinfo ENOTFOUND registry.cnpmjs.org,安装pnp

✅ 精选推荐文章 3608

Qt QDockWidget 控件 使用详解

本文详细的介绍了QDockWidget控件的各种操作,例如:设置停靠、设置默认位置、显示隐藏、设置Dock名字、设置Dock宽高、设置Dock隐藏标题栏、设置移动、浮动、关闭属性、Dock停靠移出信号槽、Dock可见信号槽等操作。 本系列QT全面详解文章目前共有二十篇目前正在不断的进行更新,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

断点 4674

非结构化数据在大数据湖中的应用实践

想象一下,你正在整理一个杂乱的书房。有些书整整齐齐地放在书架上,每本书都有明确的标题、作者和出版日期——这些就是结构化数据,它们像数据库中的表格,有固定的格式和字段。但书房里还有更多东西:散落的照片、手写的笔记、录音带、视频光盘、甚至还有画作。这些物品没有固定的格式,每件都独一无二——这就是非结构化数据。在技术术语中,非结构化数据是指没有预定义数据模型或组织形式的信息。文本文档(Word、PDF、TXT)电子邮件和社交媒体内容图像和照片(JPG、PNG)音频文件(MP3、WAV)

软件工程实践的博客 361

作物生长模型Oryza V3实战1:为什么要研究它

ORYZAV3是水稻生长模拟模型ORYZA2000的最新升级版本(3.5版),作为作物生长模型,它通过数学方法和计算机技术模拟水稻生长发育过程及其与环境条件的相互作用。主要功能包括:模拟不同条件下的水稻生长和产量形成、评估环境胁迫影响、分析土壤碳氮动态以及进行区域尺度模拟。国内应用广泛,科研机构用于气候变化影响评估、灌溉模式比较等研究,并开展参数敏感性分析和应用培训。使用流程分为六个步骤:确定输入参数(气象、土壤、作物三类)、参数校准、设置模拟环境、运行模型、分析结果(输出50个参数)和计算产量(穗干重×收

504

Qt实战:3种方法彻底隐藏QDockWidget标题栏(附代码对比)

本文深入解析了在Qt应用开发中彻底隐藏QDockWidget标题栏的三种核心方案:代码动态替换、UI设计器结合代码以及样式表控制。重点对比了setTitleBarWidget(nullptr)与替换为空QWidget的差异,提供了跨版本兼容的可靠方法,并附有完整的代码示例和可复用的工具类封装,帮助开发者实现界面空间最大化与高度定制化。

ww90123的博客 580

客服转人工率直降60%!OpenClaw深度集成NLP引擎,打造企业级对话自动化智能客服系统

本文介绍了一套基于OpenClaw智能体框架和NLP大模型引擎的智能客服系统解决方案。该系统通过深度集成NLP引擎实现精准语义理解,采用分层架构设计支持多渠道接入和业务系统对接,显著提升了客服效率。核心亮点包括:92%的重复问题自动解决率,60%的转人工率下降,40%的人力成本降低,以及从30秒压缩至0.5秒的平均响应时长。文章详细阐述了技术选型、系统架构设计、核心模块实现等关键环节,展示了如何通过智能对话系统破解传统客服业务中的人力资源与服务质量矛盾。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 361

Qt中通过样式表与代码两种方式隐藏QDockWidget标题栏的实战对比

本文详细对比了Qt中通过样式表与代码两种方式隐藏QDockWidget标题栏的实战方法。从UI美化、空间优化等需求出发,分析了两种方案的实现原理、性能差异及适用场景,并提供了跨平台适配和常见问题解决方案,帮助开发者高效实现自定义界面效果。

postgres8guard的博客 908

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

实战PyQt5: 052-停靠窗口控件QDockWidget

QDockWidget简介 在很多桌面应用软件中,比如Qt的C++ IDE集成开发环境Qt Creater, 宇宙第一集成开发环境Visual Studio等工程软件,都使用了停靠窗口布局,这样做有一个显而易见的好处,就是用户可以自由组合界面,定义自己喜欢的布局方式。 Qt提供QDockWidget停靠窗口控件来实现浮动窗口的功能,QDockWidget停靠窗口控件一般使用在QMainWindow中,它是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。一个典型的QMa

seniorwizard的专栏 4955

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

QT界面:QDockWidget停靠窗口使用小结

环境:Win10+VS2015+Qt5.9.7 首先创建一个Qt GUI Application。工程名:myDockWidget。然后,在资源文件中添加一幅图像资源: 头文件 myDockWidget.h: #pragma once #include <QtWidgets/QMainWindow> #include <QHBoxLayout> #include &lt...

akadiao的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

在 Qt Creator 中为 QDockWidget 设置隐藏和显示按钮

/ 创建按钮// 连接按钮信号到槽函数});// 将按钮添加到主窗口工具栏或其它位置// 允许关闭、浮动和移动// 或者所有特性这些方法都可以在 Qt Creator 的设计模式或代码模式中实现,根据你的具体需求选择最适合的方式。

Pei_hua100的专栏 893

QDockWidget

一、描述 QDockWidget 可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动。 二、类型成员 1、enum QDockWidget::DockWidgetFeature DockWidgetClosable:可以关闭。 在某些系统上,停靠小部件在浮动时总是有一个关闭按钮。 DockWidgetMovable:可以由用户在停靠区域之间移动。 DockWidgetFloatable:可以从主窗口中分离出来,作为一个独立的窗口浮动。 DockWidgetVerticalTi

友善啊,朋友的博客 1858

QT基础九、浮动窗口:QDockWidget

是 Qt 框架中的一个类,用于创建可停靠的窗口部件(Dockable Widget)。它通常被用来实现应用程序中的浮动面板或工具窗口,这些窗口可以停靠在主窗口的边缘、浮动在主窗口之外,或者隐藏起来。提供了灵活的用户界面布局功能,常用于需要高度定制化和动态调整界面的应用程序。vs的最右边的窗口就是一个浮动窗口。

m0_75107602的博客 1023

PyQt5高级界而控件(容器:装载更多的控件QDockWidget)

QDockWldget是一个可以停靠在QMainWindow内的窗口控件,它可以保持在浮动状态或者在指定位置作为子窗口附加到主窗口中。QMainWindow类的主窗口对象保留有一个用于停靠窗口的区域,这个区域在控件的中央周围,如图5-34所示。QDockWidget控件在主窗口内可以移动到新的区域。QDockWidget类中的常用方法如表5-15所示。

钢铁男儿 874
上一篇: 从单体到微服务:SpringCloud如何重塑电商系统的架构进化史
下一篇: 结构体设计的博弈论:如何在Unreal数据表格中平衡灵活性与性能
cuda7parallel
博客等级 码龄1天 0粉丝 1273原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值