1.PyQt5系列教程(53):欢乐斗地主QMdiArea的源码使用
2.由于找不到qt5core.dll,无法继续执行代码,重新安装程序可
3.Linux ubuntu下 qt5.15.12环境下配置opencv4.5.5
4.超详细 PyQt5 配置 教程:python 窗体开发 PyQt5 界面设计配置
5.qt5在linux下会默认带有-lgl链接参数,即使没有使用openg
6.PyQt5安装以及使用教程合集(2024)
PyQt5系列教程(53):欢乐斗地主QMdiArea的使用
上期文章中,我们一起探讨了QTabWidget、源码QStackedWidget和QDockWidget的源码运用,通过这些工具,源码我们能够实现在一个窗口内集成更多的源码组件。本期,源码源码分析权限我们转向学习QMdiArea,源码一个强大的源码工具,它提供了一个展示MDI窗口的源码区域,类似于Windows在一个屏幕上同时维护多个应用程序窗口,源码也适用于在一个显示区域内管理多个文件窗口。源码
QMdiArea的源码功能类似于MDI窗口的窗口管理器。它绘制并管理它所包含的源码窗口,提供级联或平铺布局,源码通常作为QMainWindow的源码中心部件用于创建MDI应用,但也可以放置在任何布局中。通过将区域添加到主窗口,代码如下所示:
添加QMdiArea到主窗口的代码片段。
每个子窗口都是QMdiSubWindow实例,通过addSubWindow()函数添加到MDI区域。通常会传递QWidget作为内部窗口部件,或直接传递QMdiSubWindow。子窗口继承QWidget,支持与正常顶层窗口相同的API编程。
子窗口在获取键盘焦点或调用setFocus()时变为活动状态。用户通过常规方式移动焦点来激活窗口。MDI区域在活动窗口改变时发出subWindowActivated()信号,而activeSubWindow()函数返回当前活动子窗口。
subWindowList()函数返回所有子窗口的列表,可用于创建包含窗口列表的弹出式菜单。
子窗口按照当前窗口排序,用于subWindowList()、公式源码条件设置activateNextSubWindow()和activatePreviousSubWindow()。在使用cascadeSubWindows()和tileSubWindows()进行窗口级联或平铺时,此排序规则同样重要。
QMdiArea提供内置的布局策略cascadeSubWindows()和tileSubWindows()。这些功能轻松集成到菜单条目中,用于管理窗口布局。
详细信息请参考官方文档。
本期实验通过模拟发放扑克牌,具体步骤包括发1张牌、随机发放5张牌和收牌清空操作。我们通过自定义QLabel类,赋予每个对象随机的扑克牌素材,将每一个QLabel视为一个QWidget,借助QMdiArea的相关函数实现这一过程。
使用QMdiArea的一部分代码展示。代码量并不繁重。
为了在工具栏上实现不同功能的按钮,可以参考相关知识点。若希望在工具栏按钮上显示文字,需添加特定代码。
新建QMdiArea对象,设置为主窗口的中心部件。cardlist为包含扑克牌文件名的列表。发1张牌,从cardlist随机选取一个元素即可。随机发放5张牌,从cardlist中选取包含5个元素的随机子列表。
发1张牌的代码示例。随机获取扑克牌文件名。
QMdiSubWindow是QMdiArea提供的子窗口类,代表MDI区域中的回调50%源码顶级窗口,包含窗口标题栏、内部窗口部件等,视样式可能还包括窗口框架和尺寸夹点。
构建QMdiSubWindow最常用方法是使用内部窗口部件调用QMdiArea.addSubWindow()。也可以自行创建子窗口,通过setWidget()设置内部窗口部件。
与常规顶级窗口编程类似,您可以使用相同的API,如show()、hide()、showMaximized()和setWindowTitle()等函数。
在代码中,通过setWidget()将自定义的QLabel类Card作为内部窗口部件,并通过addSubWindow()添加子窗口。
子窗口通常有最小化、最大化和关闭按钮。显示的扑克牌通过设置setWindowFlags(Qt.WindowMinimizeButtonHint)来仅显示最小化按钮。同时调整窗口大小并显示。
发5张牌的函数与上述功能类似,不再赘述。
通过这个函数可以快速关闭所有子窗口。
收牌的函数实质上是对子窗口进行排列,以级联模式排列所有子窗口。
平铺模式排列所有子窗口的方法是QMdiArea.tileSubWindows(),有兴趣的读者可以尝试。
本次学习内容较为基础,详细实现请下载源代码自行探索。
文章至此,希望大家喜欢本篇文章。如果你觉得有帮助,请给我点赞、linux系统fsck源码赞赏或分享给好友。关注微信公众号:学点编程吧,发送“pyqt”获取本期代码。加油!(ง •̀_•́)ง (*•̀ㅂ•́)
由于找不到qt5core.dll,无法继续执行代码,重新安装程序可
解决方法1(本地运行QT项目)
在进行本地运行QT项目时,确保已经正确选择了编译器。接着,找到QT安装目录下的文件夹,并将bin目录添加至环境变量设置中。确保环境变量中编译器的配置顺序不会影响QT生成的文件查找,避免出现错误。在使用位编译器生成的exe文件时,特别留意位环境可能优先查找,导致问题出现。
解决方法2(打包发布QT项目)
在开发完成并选择发布时,确保使用release版本运行软件。在源码所在目录下打开软件,返回上一级目录找到默认生成路径。将exe文件复制至新路径中。在开始目录下,找到并选择对应版本的黑窗口。通过命令进入该目录,执行打包命令:windeployqt 项目名.exe。完成打包后,可以直接打开生成的.exe文件,或者使用其他软件将其打包成安装包。
Linux ubuntu下 qt5..环境下配置opencv4.5.5
在Linux Ubuntu系统中,若想在qt5..环境中配置opencv4.5.5,首先需要从opencv.org/releases/下载对应版本的源码,并将其复制到开发板的root权限目录。接着,arpg源码免费下载解压缩文件并创建build和install文件夹。安装必要的依赖库,如cmake-gui、build-essential等,确保cmake和qt相关工具已安装。
进入build文件夹后,使用cmake-gui配置编译路径,选择Unix Makefiles,使用默认编译器,然后配置CMAKE_BUILD_TYPE为RELEASE,指定CMAKE_INSTALL_PREFIX为OPENCV安装目录/install,以避免默认安装至/usr/local。配置完成后,点击Configure并Generate,生成编译脚本。在build目录下,使用sudo make -j4(根据硬件性能调整核心数)开始编译,然后执行sudo make install -j4进行安装。
接下来,配置环境变量。在/etc/ld.so.conf.d/目录下创建opencv.conf,添加opencv安装路径,运行ldconfig更新库。在/etc/bash.bashrc中,添加相应的PKG_CONFIG_PATH和动态链接库路径,最后执行source /etc/bash.bashrc刷新环境变量。
在qt工程的.pro文件中,配置include和library路径,确保Qt项目能够找到OpenCV的头文件和库。在源码中包含opencv库,并使用namespace。最后,可以编写测试例程来验证配置是否成功。
通过以上步骤,你将成功在qt5..的Linux Ubuntu环境中配置和集成opencv4.5.5。
超详细 PyQt5 配置 教程:python 窗体开发 PyQt5 界面设计配置
在Python的窗体开发中,使用PyQt5进行界面设计需要经历一些初始化步骤。首先,确保安装三个关键包:PyQt5,PyQt5Designer,以及PyQt5-tools。安装命令如下:
1. 打开命令行,依次运行以下命令:
shell
pip install PyQt5
pip install PyQt5Designer
pip install PyQt5-tools
配置好环境后,开始使用QtDesigner。在项目文件夹中,通过"external tools"选择"pyuic",打开Qt设计师界面,开始设计可视化界面。在此过程中,你可以自由拖动组件,调整布局,完成后保存设计,PyCharm会自动生成一个.ui文件。
接着,生成.py文件。在设计师界面上保存的.ui文件上,右键点击,选择"Open with" -> "PyUIC",这将把.ui文件转换为.py文件,便于后续的代码集成。
真正开发应用时,PyQt5的核心是QApplication和QWidget。QApplication是应用程序的入口,而QWidget是窗口的基础类。创建一个简单的应用,你需要实例化这两个类,如下所示:
python
from PyQt5.QtWidgets import QApplication, QWidget
# 创建 QApplication 实例
app = QApplication([])
# 创建 QWidget 实例,这是窗口的基本容器
window = QWidget()
# ... 其他窗口设置和事件处理代码 ...
# 运行应用程序
app.exec_()
以上就是PyQt5的基础配置和简单应用开发。如果你对这个过程有任何疑问,欢迎随时提问,我会尽力帮助解答。感谢你的关注和支持,如果你对源码感兴趣,可以通过添加我的****获取更多资源:ds_class
qt5在linux下会默认带有-lgl链接参数,即使没有使用openg
参考上文,针对Qt5在Linux下默认带有-lgl链接参数的问题,我们可以通过以下步骤来解决。
首先,你的Qt工程基于MakeFile,经历QMake后执行Make。
通过修改.pro文件,实际上仅是通过QMake工具调整了MakeFile生成过程。因此,直接查看生成的MakeFile文件,关注参数。
了解后得知,Ubuntu系统中缺少lgl或你不想使用lgl,但Qt仍然为你链接了lgl。
直接删除MakeFile中的-lGL参数,重新执行make clean,再进行make。
使用ldd XXXX命令(其中XXXX为你make的输出文件)查看已链接的库。你会发现仍然使用了libGL。
原因在于,虽然没有明确指示Qt使用OpenGL,但Qt在绘制窗口时默认使用OpenGL。只要有QT+= gui,并绘制窗口,就会用到-lGL。
若希望Qt不使用OpenGL,可进入Qt源码目录,使用./configure -no-opengl编译一个不支持OpenGL的Qt版本。这将使Qt绘制窗口时无需OpenGL支持。
尝试上述步骤后,如仍有问题,请告知。我自己也有类似需求,现尝试解答。
首先运行OpenGL ES2.0程序,查看Makefile的LIBS。
LIBS = $(SUBLIBS) -L/home/hydro/Qt/Qt5..1/5..1/gcc_/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
使用ldd命令,发现已链接libGL模块。
删除-lGL参数,执行make clean,再make,重新查看ldd。
尽管删除-lGL,但libGL仍存在于链接模块中。
尝试新建一个QWindow工程,再次使用ldd检查,验证任何包含窗口的程序都会加载libGL。
按照上述步骤调整Qt配置:进入Qt源码目录,使用./configure -opengl es2,再make,最后make install。
安装完成后,将配置应用至工程,重新运行。查看Makefile。
LIBS = $(SUBLIBS) -L/usr/local/Qt-5..1/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lpthread
成功!
再次使用ldd检查,结果令人满意。
PyQt5安装以及使用教程合集()
本文主要介绍在 Window 和 Mac 平台下如何安装 PyQt5,以及如何在 PyCharm 下开发核心要点。Linux 用户可参考 Mac 平台的安装指南。
PyQt5 是 Digia 的 Qt5 应用框架与 Python 的结合,支持 Python 2.x 和 Python 3.x。Qt 库由 Riverbank Computing 开发,是强大的 GUI 库之一。PyQt5 由一系列 Python 模块组成,包含超过 个类、 函数和方法,适用于 Unix、Windows 和 Mac OS 等主流操作系统。PyQt5 提供两种许可证:GPL 和 商业证书。PyQt5 官网链接如下。
在 Window 平台安装 PyQt5 有两种方式:从官网下载源码安装或使用 pip 安装。推荐使用 pip 安装,因为它能自动根据您的 Python 版本选择合适的 PyQt5 版本。网络访问外网不佳时,请使用豆瓣镜像下载。此外,安装 PyQt5-tools 以获得常用 Qt 工具,如 Qt Designer 和 Liguist。PyQt5 版本不同,安装成功后 PyQt5 相关文件夹目录也存在差异。
设置环境变量在 Windows 中,通过在“我的电脑”属性中添加 pyqt5-tools 目录的绝对路径至系统变量 Path。验证安装成功,执行代码,若无报错并弹出“Hello, PyQt5!”窗口,则说明安装成功。Window 平台默认安装有 QT Designer.exe。
Mac 平台安装 PyQt5 类似于 Window 平台,支持手动下载源码安装或一键脚本安装。Mac 平台默认已安装 Qt Creator,无需额外安装 Qt-tools,可在“访达”中找到其文件夹。安装 Qt Designer.exe 进行 GUI 开发。Mac 平台下,通过新建工程和配置外部工具在 PyCharm 中开发 PyQt5 应用。
在使用 PyCharm 开发 PyQt5 应用时,需设置两个 extern tools 并新建工程。新建 helloworld 工程,设置 Python 版本(推荐使用 Python3.9),创建成功后,通过添加外部工具进行 GUI 设计和代码生成。新建 new.ui 文件,转换为 helloworld.py 文件,运行查看最终效果。QT SDK 集成了 Qt 库、Qt Creator IDE 和 Qt-tools,提供一站式开发环境。