问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PyQt5系列教程(52):QDockWidget的使用

发布网友 发布时间:2024-08-19 03:34

我来回答

1个回答

热心网友 时间:2024-08-28 20:10

上期我们一起学习了QDockWidget类。主要涉及到以下几个知识点:

1、QQ秀的呈现

2、QStackedWidget类的使用

今天我们一起来学习下QDockWidget类,这个类能够实现在窗口中放入多个小部件,而且还能移动哦!!

总体介绍

QDockWidget类提供了一个可以停靠在QMainWindow中或作为桌面上的顶级窗口浮动的小部件。

QDockWidget提供了Dock小部件的概念,也称为工具调色板或实用程序窗口。停靠窗口是放置在QMainWindow中的中央窗口小部件周围的停靠窗口小部件区域中的次要窗口。

停靠窗口可以在其当前区域内移动(红线的地方),移动到新区域并且由最终用户确定是否浮动。 QDockWidget API允许程序员限制浮动窗口小部件移动,浮动和关闭的能力以及它们可以放置的区域。

外观

QDockWidget由一个标题栏和内容区域组成。标题栏显示浮动窗口小部件窗口标题,浮动按钮和关闭按钮。根据QDockWidget的状态,float和close按钮可能被禁用或根本不显示。

标题栏和按钮的视觉外观取决于使用的样式。

QDockWidget充当它的子部件的包含,使用setWidget()进行设置。自定义尺寸提示,最小和最大尺寸和尺寸策略应该在子部件中实现。 QDockWidget会尊重他们,调整自己的约束以包含框架和标题。大小限制不应该在QDockWidget本身上设置,因为它们根据是否停靠而改变;停靠的QDockWidget没有框架和更小的标题栏。

下图画圈的地方就是典型的QDockWidget例子,是可以浮动、移动甚至关闭的。

类归属

PyQt5->QtWidgets->QDockWidget

继承关系

PyQt5->QObject and QPaintDevice->QWidget->QDockWidget

更多详细的介绍,请参见官网:

小例子

这是一个简单的小例子,在火影动漫中宇智波佐助得到六道仙人的力量馈赠,左眼开启勾玉轮回眼。勾玉轮回眼与轮回写轮眼类似,同时拥有轮回眼和写轮眼的力量。拥有独有忍术天手力和更强的六道之术,并继承了原本写轮眼和万花筒写轮眼的能力,能够使用连六道仙人都惊叹的幻术。经锻炼后能开启空间传送门,其发动的完成体须佐能乎可以抵挡无限月读的光芒,也能和拥有所有尾兽之力的人一起解除无限月读和神·树界降诞(来源:百科百科)。

在下面的例子中没有这么夸张,为了演示方便,没有用复杂的小部件,只是用了QLabel加载图片而已,旨在演示QDockWidget的作用,图片来源于互联网,不喜勿喷。

在上面这个例子中,我们大部分都是通过Qt设计师来实现的,具有以下几个功能:

1、QDockWidget是可以拖动的、悬浮的、甚至是关闭的。

2、写轮眼做了设置,不可以关闭。

3、轮回眼做了设置,即使关了,双击佐助上的轮回眼也能够显示。

4、写轮眼、轮回眼是可以叠加的,变成了QTabWidget,貌似很厉害啊!

如果你对写轮眼、轮回眼、佐助不知道的话,没有关系。写轮眼、轮回眼理解成两个QDockWidget小部件,佐助里面成QMainWindow中的一副图片就行了。

代码解析

使用Qt设计师可以很方便的帮助我们实现上面的功能,拖拽就行了。这里我把用简单的代码讲解一下如何使用QDockWidget。

效果如下:

使用QDockWidget首先要新建一个QDockWidget对象。

新建一个按钮放在QDockWidget对象上。

新建一个QTextEdit小部件设置为主窗口的中央小部件。

将给定的dockwidget添加到指定的区域,这里是中间,对象是self.dock。

说明一下,除了Qt.RightDockWidgetArea,还有其它的,如:

其余的代码就不做说明,因为较为简单。

这个就是一个最简单的例子了。

我们之前所演示的火影忍者那个例子,和这个基本差不多。只是还有几点需要说明一下:

1、写轮眼是无法关闭的。

这个需要单独设置,如下:

通过这个设置它只具有移动的功能了。当然除了DockWidgetMovable还有其它的功能,如下:

2、有的时候我们需要QDockWidget就是浮动的,而不是我们把它拉出来,可以这样设置:

效果如下:

3、轮回眼即使关闭也能够通过点击佐助的显示出来。

给self.label_zhuozhu2安装事件过滤器,然后重写eventFilter这个函数就行了。相关的知识点,请参见:

最后

本次的知识点较为简单,详细的内容可以下载源码自己看看。建议可以抽空研究下eric6自动生成的代码,我个人觉得也是可以提高的地方。

好的,今天这期就这样结束吧。如果你喜欢本篇文章,请给我点赞

赞赏(推荐)

分享给你的好友们吧!

关注微信公众号:学点编程吧,发送:pyqt552可以获得本期代码。加油!(ง •̀_•́)ง (*•̀ㅂ•́)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国水利水电科学研究院水环境研究所机构简介 水利部中国科学院水工程生态研究所科研成果 水土保持与生态环境研究中心简介 中科院水保所考研科目 中国科学院水利部水土保持研究所研究所概况 音频服务未运行怎么办(win7音频服务未运行怎么办) apex英雄客户端未运行反作弊系统EAC报错怎么办 ...好几个喷嚏和流鼻涕,下午就会好一点,冬天特别严重... ...流鼻涕,打喷嚏等。近一个月,晚上睡觉鼻塞严重,无法正常入睡,会大 ... 每天都会连续打喷嚏,右鼻孔经常鼻塞,经常会流鼻涕,流出来是清水状态,这... 曹操挟天子以令诸侯是好是坏?其实曹操也是骑虎难下 没有内存卡还会有聊天记录吗。qq是手机上自带的。也不能卸载。_百度知... 我三星平板上的内存卡被别人拿走了,请问我的微信QQ聊天记录内存卡... 别人把我手机内存卡拿走了想看我短信聊天记录能看到吗 工伤鉴定十级赔偿标准是什么 十级工伤保险赔偿标准怎样规定的? 男人喜欢穿什么内裤,平角的还是三角的? 韩国医政博弈满月,结果如何 床上出现青色虫子是什么虫? 在支付宝中怎么把淘宝的钱提出来呢? 波西亚时光紫胶在哪获得 波西亚时光在哪里可以找到青虫 烟青虫烟青虫生长特点 为什么墙上好多小青虫 电脑的图片变大 在淘宝上买东西的时候怎么提现啊?? 大米易拉罐包装机 wps如何设置8k版wps8k纸尺寸 微信朋友圈内容还能修改吗? 微信朋友圈内容能不能改 微信的朋友圈内容能不能修改呢 奶茶放了5个小时还能喝吗 如何挖掘孩子的天赋 如何在家制作美味的蚝油牛肉? 父母应该如何注意挖掘孩子的天赋? 为什么我的手机打电话时候听筒没有声音? 为什么木心先生说李白、苏东坡、辛弃疾的豪放不过是外露的架子呢?_百 ... 没钱了发朋友圈的句子 皖江学院录取线是多少 姓何的男孩什么乳名最佳 我姓何,我老婆姓来,孩子是女孩,2013年1月5日21时19分出生。打算姓来... 下载的苹果软件是dmg.001、dmg.002之类的类似分卷压缩形式的文件,怎 ... PPT录屏怎么能录制时间长一点ppt的录屏 怎么看待有些教师备课就是抄教案,该惩罚吗 ...小学语文特岗教师,我一直依靠教案,甚至借抄教案上课,总找不到更... 如何给主机安装跳线? 微信不想群里看见朋友圈怎么弄啊? 怎样关闭微信朋友圈被频繁拉入群? ...收押金两万,美食城一直不景气,现在干三个月经营不下去了,不想... 海苔吃多了会怎样 海苔吃多了有什么坏处 ...合同上面写的没有到期不退押金, 可以协商房东退一点押金吗...