PyQt(Python+Qt)学习随笔:QMdiArea多文档界面部件的subWindowActivated信号

Qt之容器控件(QMdiArea) 简述 QMdiArea(Multiple Document Interface Area)提供了一个可以同时显示多个文档窗口的区域。 本质上来说,QMdiArea就像是多文档窗口的窗口管理器。例如,它将它所管理的窗口绘制在它上面,并且以级联或者平铺的方式放置这些窗口。通常情况下,QMdiArea用作QMainWindow的中心控件,以此来创建一个MDI应用程序。但是,它也可以被放置在任何布局类中。... 阅读详情

QMdiArea的subWindowActivated在一个窗口激活(获得焦点)时发射,语法如下:

  • subWindowActivated(QMdiSubWindow window)

如果window参数为None,则表示没有激活的子窗口,如果应用没有disable子窗口,则表示所有子窗口都关闭了。

这个信号比较有用,当开发的应用需要结合子窗口的个数来显示不同的状态时,可以通过这个信号判断window参数是否为None来设置不同的状态。

如下代码是将该信号连接一个槽方法,在槽方法中根据window参数设置actionclose对应按钮和菜单的状态:

    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.mdiArea.subWindowActivated.connect(self.setButtonsStatus)

    def setButtonsStatus(self,win):
        if win:self.actionclose.setEnabled(True)
        else:self.actionclose.setEnabled(False)

老猿Python,跟老猿学Python!

PyQt学习笔记:QMdiArea多文档界面部件的subWindowActivated信号 在MainWindow的构造函数中,我们创建了一个QMdiArea实例,并将其设置为主窗口的中央部件(central widget)。我们在槽函数中获取了当前活动的子窗口,并将焦点设置在该子窗口的QTextEdit部件上,以便用户可以直接在该部件中进行编辑。我们使用QTextEdit部件作为子窗口的内容,并将其设置为QMdiSubWindow的部件。通过使用QMdiArea和subWindowActivated信号,我们可以轻松地创建和管理多个子窗口,为用户提供一个功能强大的多文档界面。 阅读详情

相关推荐

QMdiArea在多窗口切换时无法接收键盘事件

QMdiArea的用途很多,例如我们用的开发环境,都是多文档的 形式,可以用这个类来实现,不过也一些坑,例如标题栏需要自己定制,达不到浏览器那种效果,键盘事件的接收可能需要自己处理,例如, 做一个文本编辑软件,在切换窗口时会触发subWindowActivated信号,然后根据各个子窗口 对象,设置相关属性。 connect(ui.mdiArea, &QMdiArea::subWindowActivated, [=](QMdiSubWindow *pSub) { FileW...

琅嬛福地 899

Qt应用开发(基础篇)——MDI窗口 QMdiArea QMdiSubWindow

QMdiArea类继承于QAbstractScrollArea,QAbstractScrollArea继承于QFrame,是Qt用来显示MDI窗口的部件。滚屏区域基类 QAbstractScrollArea框架类 QFrameQMdiArea部件提供了一个显示多文档窗口。子窗口使用管理,QMdiSubWindow继承于QWidget,所以它除了拥有顶级窗口的属性,还拥有自身的行为,比如按键切换窗口等。

波塞冬的博客 3333

Python PyQt GUI编程:QMdiArea多文档界面实现

在上面的代码中,我们实现了两个槽函数new_document()和close_document(),分别对应新建文档和关闭文档的动作。在new_document()函数中,我们创建了一个新的QMdiSubWindow,并设置它的标题和部件,并将其添加到QMdiArea中。该部件可以将多个子窗口放入一个主窗口中,用户可以方便地在多个文档之间切换,增强了程序的可操作性和用户体验。在上述代码中,我们创建了一个QMdiArea作为主窗口,并循环创建了三个QMdiSubWindow作为子窗口。

BUG?不存在的! 332

Qt Widgets——子区域和子窗口

QMdiArea 一般使用于主窗口QMainWindow,用于容纳多个子窗口QMdiSubWindow  qt creator 3.0的设计师有MdiArea可直接拖入使用。 界面如下,图中灰色框即是个MdiArea,另一图中创建了2个QMdiSubWindow : 代码如下: #include "mainwindow.h" #include "ui_mainwind...

weixin_34273481的博客 1141

Python Qt6快速入门-多文档界面(MDI)

多文档界面(Multi Document Interface,MDI)是一种应用程序界面管理方法。MDI应用程序一般由一个主窗口和多个子窗口组成,这些子窗口在主窗口里显示,并共享主窗口的菜单栏,工具栏。在MDI应用程序中,操作对象一般是当前活动的子窗口。典型MDI应用程序 如Microsoft的Word、Excel等软件。

视觉与物联智能 2100

Golang实战:用Quic-Go v0.46.0搭建高性能文件传输服务(附完整代码)

本文详细介绍了如何使用Golang和Quic-Go v0.46.0构建高性能文件传输服务,涵盖服务端和客户端的完整实现。通过QUIC协议的多路复用、零RTT连接等特性,显著提升文件传输效率,特别适合高延迟或不稳定网络环境。文章提供完整代码示例和性能调优技巧,帮助开发者快速部署高效的文件传输解决方案。

weixin_33737134的博客 450

第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例

专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 一、引言 老猿在前期学习PyQt相关知识时,对每个组件的属性及方法都研究得很透彻,并将学习的感悟都写成了博文,这种方式写了大量博文,但也耽误了太多时间,学习PyQt的时间已经超过了学习Python基础知识和爬虫的时间,而后面还有好多部件,必须得提速了,因此老猿决定以...

老猿Python 1811

【个人记录】CentOS7升级glibc至2.28

由于CentOS7系统已经停止支持, 虽然大部分业务已经迁移至OpenEuler,但仍然有部分业务系统跑在CentOS7上。在尝试部署新业务环境时经常会提示如下错误(以code-server运行需要的node 20为例)node -v为了保障业务可正常运行,通常采用Docker继承好的node环境进行部署,但部分场景还是需要宿主机使用新版glibc版本。本文记录本人一次成功升级glibc(2.17=>2.28)的步骤。

喵呜 3883

pyqt5中mdi如何检测多窗口的焦点切换

在PyQt5中,如果您想要检测MDI窗口(多文档界面)中的焦点切换,可以使用QMdiArea的subWindowActivated信号。每当子窗口的焦点更改时,subWindowActivated信号将发出。在这个例子中,我们创建了一个MDI区域,然后将subWindowActivated信号连接到on_subwindow_activated槽函数。每当子窗口的焦点更改时,槽函数将被调用,并且当前子窗口的标题将被打印出来。

m0_57236802的博客 685

BSW: Dcm模块配置--28服务

这个章节讲解下UDS中的28服务(Communcation Control)的配置,顾名思义,对当前ECU的通讯状态进行变更,主要设置应用报文,网络管理报文的收发控制,通常应用在刷写APP软件时,降低总线负载。这里首先要提醒的一点是,28服务几乎不需要手写代码,只有在客户需求要求前置条件不满足时报特定NRC时才需要填充代码。实际配置中主要涉及的模块有DCM,BSWM,ComM,RTE.2.BswM模块的配置。3.ComM模块的配置。1.DCM模块的配置。

Forever_Oct的博客 3086

OpenSSH命令注入漏洞复现(CVE-2020-15778)

OpenSSH命令注入漏洞复现 1、简介 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现,ssh主要就是用来远程控制计算机,或传输文件,OpenSSH是使用SSH透过计算机网络加密通讯的实现。 2、漏洞概述 该漏洞是存在于scp在拷贝文件时产生的一个代码注入漏洞,攻击者可以利用此漏洞执行任意命令,比如:反弹shell, 3、影响版本 openssh <= openssh-8.3p1 4、实验环境 首先下载openssh,版本要符合漏洞影响的版本 服务端:apt-get

weixin_44537595的博客 3639

python知识:如何多窗口切换

用QT5实现多窗口切换,是基本的程序应用需求;这里实现的多窗口原理,实际上是同时打开,部分隐藏,点击按钮,互相切换显示。

gongdiwudu的专栏 9214

学Simulink——基于直流电机的建模与控制场景实例:直流电机带负载突变时的动态响应仿真

在实际应用中,直流电机经常需要应对各种工作条件的变化,例如负载突变。了解电机在这种情况下的动态响应特性对于确保系统的稳定性和可靠性至关重要。通过仿真分析,可以预测电机在不同负载条件下的表现,并优化控制系统的设计。本文将详细介绍如何使用来构建一个直流电机带负载突变时的动态响应仿真模型,并通过仿真展示其应用效果。本文介绍了如何使用构建一个直流电机带负载突变时的动态响应仿真模型,并通过仿真展示了其应用效果。

xiaoheshang_123的博客 114

QMdiArea使用中遇到的问题

QMdiArea使用中遇到的问题

liuying263的专栏 671

GPU硬件架构与微架构深度解析28-稀疏计算:稀疏矩阵计算的硬件支持

本文介绍了GPU加速稀疏计算的关键技术。主要内容包括:1)稀疏数据的存储格式(COO、CSR、CSC)及其特点;2)现代GPU的稀疏计算硬件优化,如NVIDIA的稀疏张量核心和内存访问优化;3)稀疏计算在推荐系统、NLP和科学计算等领域的应用案例;4)性能优化技巧,包括存储格式选择、硬件特性利用和混合精度计算等。文章指出,专用稀疏计算技术可显著提升AI和大规模科学计算的效率,相比传统方法可获得5-10倍的性能提升。

2301_79143213的博客 113

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8295

python3+PyQt5 实现多文档界面(MDI)

本文是对《Python Qt GUI快速编程》的第9章的多文档界面的例子texteditor用Python3+PyQt5进行改写。

xiaoyangyang20的博客 1万+

php环境如何实现国密SM2相关功能

🏆本文收录于《优快云问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1616

PyQt5 如何处理多个文档的解决方法

PyQt5 如何处理多个文档的解决方法 记录博文 主窗口风格应用程序中的另外一个问题是,到底该如何处理多个文档。对此有 4 种解决方法。 第 1 种解决方法是,使用应用程序的多个实例。在这一解决方法中,用户会为打算处理的每一个文档都启动一个应用程序实例。理论上,这样做根本不需要再做任何编程处理,但实际上,可能还是需要实现一些诸如文件锁定的机制(file-locking scheme),或者是实现一种基于跨进程通信的机制,以确保用户不会对同一文档同时启动多个应用程序。 第 2 种解决方法是使用单文档.

Enderman_xiaohei的博客 810

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

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

tntunicode 控件使用方法_PyQt使用设计师设计界面并调用多个窗口文件示例

引言Qt是C++语言下广泛使用的一种跨平台的程序界面设计库,而PyQt是其在Python语言下的绑定,这为在Python语言下编写GUI界面程序提供了极大的便利。对于界面程序的设计,可以使用代码构建,也可以借助于其提供的设计师(Qt Designer)工具来构建,而从方便高效性上来讲,第二种即使用设计师的方法应该是目前应用最多的一种界面设计方法。在使用设计师设计复杂的界面程序时,除设计主界面窗口文...

weixin_39826080的博客 315

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

八、Python结合Qt实现点击按钮保存并生成自定义word详细讲解(相信我,耐心看完,一定会有收获的)

Python结合Qt实现点击按钮保存并生成自定义word详细讲解(相信我,耐心看完,一定会有收获的)

beyond谚语的博客 2274

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【PyQt5】python3.7+Qt+pycharm环境搭建->初建项目->生成可执行文件(图多)

win7或win10,64位或32位,安装顺序可以跟着小星一起。(找个网速快的地方) 提前说明:安装32位(或者64位)pyhton后,pycharm和第三方库也都安装32位(或者64位)

xiakejiqiren的博客 2685

【Python随笔】PyQt5检查窗口是否在屏幕前台被激活的方法

自己做的基于PyQt5效率工具有一个优化需求:当窗口不在前台激活的情况下,不做后台任务,因此需要检查窗口是否在前台 PyQt的接口文档定义啥的找起来比较复杂,坑也比较多,stackoverflow上边也没有什么很完美的答案 经过自己一番探索,找到其中一个方式,(假设有继承QWidget)代码如下: # 是否在前台active,假设点到另一个窗口激活,这个就是False self.window().isActiveWindow() # 窗口是否最小化 self.window().isMinimized()

HiKariのTechLab 2096

(1)PyQt5显示一个窗口

简单体验 from PyQt5.Qt import * import sys # 创建一个应用程序对象 app = QApplication(sys.argv) # 设置一个窗口对象 window = QWidget() # 窗口标题 window.setWindowTitle("第一个程序") # 窗口大小 window.resize(500, 500) # 窗口位置 window.move(400, 200) # 设置一个标签控件 label = QLabel(window) # 设置标签内容 l

Mr_chenweida的博客 2269

第六章 多文档界面

在主窗口的中央区域能够提供多个文档的那些应用程序就称为多文档界面(MDI)。Qt中把QMdiArea类作为中央窗口部件,并且每一个文档窗口都是这个类的子窗口。     对于多文档界面应用程序有一个管理,就是为他提供一个Window菜单,这个菜单中包含一些管理这个窗口以及窗口列表的命令。激活窗口会使用一个选择标记表示出来。用户在window菜单中单击代表特定窗口的一项,就可以激活任何窗口。

Twinkle 1371
上一篇: PyQt(Python+Qt)学习随笔:QMdiArea多文档界面区域的viewMode、documentMode、tabsClosable、tabPosition等属性介绍
下一篇: 第15.37节 PyQt(Python+Qt)入门学习:containers容器类部件QMdiArea多文档界面部件详解及编程开发案例
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值