问题标签 [wxpython]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1238 浏览

c++ - 用 Python 编写的 wxWidget 比 C++ 慢多少?

我正在考虑编写一个显示图形节点网络的 wxWidget,因此会执行很多绘图操作。我知道使用 Python 来做这件事会更慢,但我宁愿让它工作并稍后在它运行时移植它。理想情况下,如果性能影响不是太大,我更愿意将代码库保留在 Python 中以便于更新。

我想知道的是我应该期望事情进展多慢?我意识到这是模糊和开放式的,但我只需要了解会发生什么。画 500 圈会卡住吗?会不会很明显?你有什么经验?

0 投票
4 回答
1055 浏览

python - 从 wx 框架类调用应用程序方法

我从 wxPython 开始,并且一直在努力完成我可以掌握的每一个教程和示例。然而,我遇到了一个小问题,它与 wx.App 与 wx.Frame 有关,并且应该包含特定的方法。几乎我见过的每个示例都没有超出布局/大小调整和事件处理,没有一个真正解决 wxPython 项目的项目组织。

例如,我有一个获取文件夹列表的方法。大多数示例处理此问题的方式是将方法直接粘贴在框架类中。此方法有可能在应用程序的其他几个部分中使用,因此将其存储在应用程序类级别会更有意义。

我应该如何组织和调用这样的“通用”方法,以免我的框架类混乱。

更新:

为了澄清,“文件夹列表”只是一个例子,我的实际方法做了更多的工作。我要说的是我的代码不是特定于框架的。如果我在应用程序类中有这个,那么从我的框架中的事件方法和事件方法中调用它的最佳方法是什么。

我正在寻找实际的项目组织技术,而不是编程基础。

0 投票
2 回答
1962 浏览

python - wxPython 和在窗口之间共享对象

我已经使用 python 有一段时间了,并且刚刚开始学习 wxPython。在创建了一些小程序之后,我很难理解如何创建可以在对话框之间共享的对象。

以下是一些代码作为示例(为长度道歉 - 我试图修剪):

所以,我希望这两个对话框都能访问 gamePlayer 对象。目前,我能想到的唯一方法是将 gamePlayer 对象创建为全局对象,但这些通常是不受欢迎的——有没有更好的方法来做到这一点?

这个问题中有一种在事件绑定中传递对象的方法,但感觉不太对劲。

学习实现 MVC 模式是前进的方向吗?

谢谢。

0 投票
3 回答
3487 浏览

python - 使用外部 GUI 库在 Autodesk Maya 中制作用户界面

我在 Autodesk Maya 中开发工具。我构建的许多工具都有简单的窗口 GUI 供动画师和建模师使用。这些 GUI 通常包含您通常希望在任何基本窗口中看到的内容;标签、列表、菜单、按钮、文本字段等。但是,您可以使用可用工具构建的 UI 的复杂性受到限制,特别是可用小部件的类型。

我有兴趣使用一些更高级的 wxPython 小部件,例如 ListView(网格)、Tree 等。这将涉及使用完整的 wxFrame(窗口)来显示整个 UI,这实际上意味着该窗口将不再与玛雅联系在一起。不是破坏交易,但这意味着当 Maya 最小化时,窗口不会效仿。

我以前用 tkinter 作为测试尝试过这样的事情,但发现它需要一个 MainLoop 才能在自己的线程中运行。这是合乎逻辑的,但在我的情况下,它与 Maya 自己的线程冲突,基本上使 Maya 挂起,直到窗口关闭。这是因为 Maya 在主 Maya GUI 共享的单个线程中运行所有脚本,无论是 MEL 还是 Python。这是为了防止一个脚本在另一个脚本尝试对同一对象执行操作时删除一个对象。

wxPython 有同样的“mainloop”方法。我想知道是否有任何方法可以让它在 Maya 中工作?

0 投票
5 回答
1993 浏览

python - 捕获 MainLoop 异常并在 MessageDialogs 中显示它们

我有一个依赖于外部配置文件的 wxPython 应用程序。如果有任何配置错误,我想提供友好的消息对话框。我试图通过将我的 app.MainLoop() 调用包装在 try/except 语句中来完成这项工作。

下面的代码适用于我的 MainWindow 框架类中的初始化代码,但不会捕获 MainLoop 中发生的任何异常。我怎样才能捕捉到这些异常呢?

我读过一些关于可以在 wx.App 类中覆盖的 OnExceptionInMainLoop 方法的提及,但是我读到的源代码必须是过时的(2004 年),因为 wx.App 似乎不再具有该名称的方法。

编辑:

我需要能够在我的主循环期间捕获未处理的异常,以便我可以进一步处理它们并将它们显示在错误对话框中,而不是静默传递,也不会终止应用程序。

sys.excepthook 解决方案级别太低,与 wxPython 主循环线程不兼容。虽然指向另一个答案的链接执行相同的尝试/除了环绕主循环,但由于 wxPython 再次为应用程序 / ui 生成不同的线程而无法正常工作。

0 投票
1 回答
410 浏览

python - 什么版本的 Python 和 wxPython 对应 OSX 的每个版本?

我想知道每个 OSX 版本对应的 Python 和 wxPython 版本。我很想知道在必须安装较新版本的 Python 和 wxPython 之前,我的一些应用程序将在 Mac 上保持兼容多久。

0 投票
3 回答
990 浏览

python - 开发简单的窗口 3D 建模应用程序的最佳模块?

我想创建一个非常基本的 3D 建模工具。该应用程序应该是窗口化的,并且需要响应 3D 视口中的鼠标单击和拖动事件。

我已经决定将 wxPython 用于实际窗口,因为我已经相当熟悉它了。但是,我需要生成一个可以响应各种鼠标事件的 OpenGL 视口。将“相机空间”中的 2D 鼠标位置转换为世界空间坐标以使选择任务更容易进行一些方便的数学运算不会有什么坏处。

我正在寻找关于我应该查看哪些模块的建议。

0 投票
2 回答
2179 浏览

python - 使用 Python 进行跨平台 SWF 播放?

我正在寻找使用 Python 在 Windows、OSX 和 Linux 上播放 SWF 文件的不同解决方案。理想情况下,我想将播放器嵌入到 wxPython 框架/窗口中。

我正在调查的一种可能性是 Mozilla XPCOM 框架,因为它被 FireFox 用来在浏览器中加载 Flash 插件。

0 投票
5 回答
3696 浏览

python - 如何在其他平台上完成系统托盘应用程序?

Windows 有一个“系统托盘”,其中包含时钟和 MSN、Steam 等始终运行的服务。

我想开发一个 wxPython 托盘应用程序,但我想知道这将如何移植到其他平台。每个平台上对应的托盘是多少,以及需要多少手动工作才能支持 Windows、OSX 和 Linux(尤其是哪些 shell 最友好)。

0 投票
1 回答
1045 浏览

python - 在 wxPython 中的面板之间拖动按钮

有谁知道一个例子,它显示了如何在 wxPython 中将按钮从一个面板拖动到另一个面板?

我在面板中创建了一个位图按钮,我希望能够将它拖到另一个面板并放在那里。

我没有找到任何使用按钮的示例,只有文本和文件。

我正在使用最新版本的 Python 和 wxPython。