将 Tkinter 集成到 PYQT 中 - 或者 - 在 PYQT 中绘画

问题描述 投票:0回答:3

快速提问:

我用 PYQT 编写代码,在发现 Tkinter 的画布之前我对它不感兴趣。我正在制作一个 2D 动画应用程序,我需要画布,但我也想在 PYQT 中完成。

我很想从 tkinter 获取画布并将其作为我的 pyqt 小部件的父级。

任何信息都很棒,或者是在 pyqt 中制作画布的教程的链接,因为经过大量搜索后我自己还没有找到任何信息。我在 pygame 中半制作了一个,但也无法将其添加到 PYQT 中。

animation pyqt tkinter paint
3个回答
1
投票

Tkinter 和 Qt 是完全不同的框架,您无法将 Tkinter 小部件集成到 Qt 窗口中。然而,Qt 有绘制事物的解决方案。

如果您是 PyQt 新手,我强烈推荐 本教程。有一章是关于基础绘画的。之后,您就可以开始阅读此文档。这是 C++ Qt 的文档,但您仍然可以将其应用于 PyQt,因为 python 中的 Qt 类具有相同的方法和属性:) 您只需将 C++ 语法调整为 python 即可。您甚至可以找到教程那里

当您对 PyQt 足够熟悉时,您可以研究绘画:我认为您可以 在小部件上绘画(如果您没有很多要绘制的项目)或使用 GraphicsView 架构(更复杂但更适合绘画)。这两种方式都会比 TKinter 画布困难一些,因为 Qt 是一个大框架并且有很多选项。

祝你好运:)


0
投票

如果这是Qt,即使在Python上,您也可以继承QWidget,重新实现paintEvent并使用QPainter进行绘制。从这个意义上讲,任何小部件都是画布(但paintEvent受到保护。)


0
投票

具有本机后备窗口句柄(Windows 上的 HWND)的 Qt 小部件可以集成到 TkInter 应用程序中。相反,所有 TkInter 小部件都有本机句柄,并且可以嵌入到 Qt 小部件中。 Qt 在 GUI 线程上运行标准事件泵,并将与其他本机小部件协作。

© www.soinside.com 2019 - 2024. All rights reserved.