PyQt学习笔记:QMdiArea多文档界面和QMdiSubWindow子窗口的属性和操作方法

418 篇文章 ¥99.90 ¥299.90
本文是PyQt学习笔记,重点讲解QMdiArea和QMdiSubWindow的特性。QMdiArea是多文档界面容器,支持多个子窗口,而QMdiSubWindow作为其子窗口,可用于嵌入不同组件。文中详细介绍了QMdiArea的background、activationOrder、viewMode和tabPosition属性,以及QMdiSubWindow的widget、title、isShaded和isFloating属性,提供相关源代码示例。

PyQt学习笔记:QMdiArea多文档界面和QMdiSubWindow子窗口的属性和操作方法

PyQt是一个广泛应用于Python GUI编程的开源框架。QMdiArea和QMdiSubWindow是PyQt中重要的容器类部件。QMdiArea提供多文档用户界面,即一个主窗口可以打开多个子窗口,每个子窗口可以装载不同的文档或视图。QMdiSubWindow则是QMdiArea中的子窗口,可以在其中嵌入各种QWidget及其子类的对象。

本篇文章将介绍QMdiArea和QMdiSubWindow的相关属性和操作方法,并提供相应的源代码。

  1. QMdiArea属性

(1)background:设置QMdiArea背景色;

(2)activationOrder:设置QMdiArea子窗口激活顺序;

(3)viewMode:设置QMdiArea子窗口显示模式;

(4)tabPosition:设置QMdiArea子窗口选项卡位置。

下面是相应的源代码:

from PyQt5.QtWidgets import QApplication, QMainWindow, QMdi
在Qt多文档窗口应用中,有时会出现这样一个应用场景:在这个全局应用中,只new了一次,其后操作就是隐藏现实。 即:通过界面的工具栏或菜单,触发显示一个窗口,当这个窗口存在时候,显示在最前面,点击窗口关闭的时候,只是隐藏这个窗口,而不是销毁。 父窗口中主要代码如下: pW1 = new myWidget(ui.mdiArea) ; //new一个部件 QMdiSubWindow pMdiSubwin1 = ui.mdiArea->addSubWindow(pW1) ;//将部件 装入QMdiSubWindow,同时获取该QMdiSubWindow指针 pMdiSubwin1->hide(); //设置窗口隐藏 pW1->installEventFilter(this); //在父窗口中注册部件消息过滤事件 在部件发生QCloseEvent事件时候,直接忽略该事件: void myWidget::closeEvent(QCloseEvent *e) { e->ignore(); } 尽管在窗口中忽略了该窗口的关闭动作,实际并未关闭,但是该消息通过注册在父窗口的消息过滤器传到父窗口中,在父窗口中的过滤事件处理时,通过QMdiSubWindow隐藏操作,实现隐藏窗口: if( (target == pW1 ) && (event->type() == QEvent::Close) ) pMdiSubwin1->hide() ; 小结: 本例程在VS2010+QT。8.5下实现,方法及思路 在该应用中只能通过获取窗口的指针进行隐藏/小时操作,而不是使用被装入窗口的部件窗口指针进行操作。 另:直接通过部件隐藏操作,会出现部件中的部件消失,只剩下僵尸窗口的现象,不能实现隐藏窗口。 例程源码链接:https://download.youkuaiyun.com/download/weixin_46079613/12517109
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

code_welike

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

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

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

打赏作者

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

抵扣说明:

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

余额充值