皮皮网
皮皮网

【vr源码下载】【云赏源码下载】【centos源码安装openssl】53源码

来源:微圈源码出售 发表时间:2024-12-22 15:31:13

1.PyQt5系列教程(53):欢乐斗地主QMdiArea的源码使用

53源码

PyQt5系列教程(53):欢乐斗地主QMdiArea的使用

       上期文章中,我们一起探讨了QTabWidget、源码QStackedWidget和QDockWidget的源码运用,通过这些工具,源码我们能够实现在一个窗口内集成更多的源码组件。本期,源码vr源码下载我们转向学习QMdiArea,源码一个强大的源码工具,它提供了一个展示MDI窗口的源码区域,类似于Windows在一个屏幕上同时维护多个应用程序窗口,源码也适用于在一个显示区域内管理多个文件窗口。源码

       QMdiArea的源码功能类似于MDI窗口的窗口管理器。它绘制并管理它所包含的源码窗口,提供级联或平铺布局,源码通常作为QMainWindow的源码中心部件用于创建MDI应用,但也可以放置在任何布局中。通过将区域添加到主窗口,代码如下所示:

       添加QMdiArea到主窗口的代码片段。

       每个子窗口都是QMdiSubWindow实例,通过addSubWindow()函数添加到MDI区域。通常会传递QWidget作为内部窗口部件,云赏源码下载或直接传递QMdiSubWindow。子窗口继承QWidget,支持与正常顶层窗口相同的API编程。

       子窗口在获取键盘焦点或调用setFocus()时变为活动状态。用户通过常规方式移动焦点来激活窗口。MDI区域在活动窗口改变时发出subWindowActivated()信号,而activeSubWindow()函数返回当前活动子窗口。

       subWindowList()函数返回所有子窗口的列表,可用于创建包含窗口列表的弹出式菜单。

       子窗口按照当前窗口排序,centos源码安装openssl用于subWindowList()、activateNextSubWindow()和activatePreviousSubWindow()。在使用cascadeSubWindows()和tileSubWindows()进行窗口级联或平铺时,此排序规则同样重要。

       QMdiArea提供内置的布局策略cascadeSubWindows()和tileSubWindows()。这些功能轻松集成到菜单条目中,用于管理窗口布局。

       详细信息请参考官方文档。

       本期实验通过模拟发放扑克牌,具体步骤包括发1张牌、如果更改游戏源码随机发放5张牌和收牌清空操作。我们通过自定义QLabel类,赋予每个对象随机的扑克牌素材,将每一个QLabel视为一个QWidget,借助QMdiArea的相关函数实现这一过程。

       使用QMdiArea的一部分代码展示。代码量并不繁重。

       为了在工具栏上实现不同功能的按钮,可以参考相关知识点。若希望在工具栏按钮上显示文字,discuz安卓源码需添加特定代码。

       新建QMdiArea对象,设置为主窗口的中心部件。cardlist为包含扑克牌文件名的列表。发1张牌,从cardlist随机选取一个元素即可。随机发放5张牌,从cardlist中选取包含5个元素的随机子列表。

       发1张牌的代码示例。随机获取扑克牌文件名。

       QMdiSubWindow是QMdiArea提供的子窗口类,代表MDI区域中的顶级窗口,包含窗口标题栏、内部窗口部件等,视样式可能还包括窗口框架和尺寸夹点。

       构建QMdiSubWindow最常用方法是使用内部窗口部件调用QMdiArea.addSubWindow()。也可以自行创建子窗口,通过setWidget()设置内部窗口部件。

       与常规顶级窗口编程类似,您可以使用相同的API,如show()、hide()、showMaximized()和setWindowTitle()等函数。

       在代码中,通过setWidget()将自定义的QLabel类Card作为内部窗口部件,并通过addSubWindow()添加子窗口。

       子窗口通常有最小化、最大化和关闭按钮。显示的扑克牌通过设置setWindowFlags(Qt.WindowMinimizeButtonHint)来仅显示最小化按钮。同时调整窗口大小并显示。

       发5张牌的函数与上述功能类似,不再赘述。

       通过这个函数可以快速关闭所有子窗口。

       收牌的函数实质上是对子窗口进行排列,以级联模式排列所有子窗口。

       平铺模式排列所有子窗口的方法是QMdiArea.tileSubWindows(),有兴趣的读者可以尝试。

       本次学习内容较为基础,详细实现请下载源代码自行探索。

       文章至此,希望大家喜欢本篇文章。如果你觉得有帮助,请给我点赞、赞赏或分享给好友。关注微信公众号:学点编程吧,发送“pyqt”获取本期代码。加油!(ง •̀_•́)ง (*•̀ㅂ•́)

相关栏目:热点