问题标签 [wxwidgets]

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 回答
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 投票
1 回答
1760 浏览

udp - 使用 wxWidgets 发送 UDP 广播消息

在 Mac/Win/Linux 上使用 wxWidgets 2.8.9,如何发送 UDP 广播消息?接收正在使用 wxDatagramSocket 工作,但对我来说,我将如何发送 UDP 广播消息并不明显。

0 投票
2 回答
1846 浏览

wxwidgets - wxWidgets 中的通知?

我正在使用 C++/wxWidgets 开发一个小型应用程序,其中 GUI 的几个部分需要根据接收到的 UDP 数据报进行更新。更具体地说,辅助线程尝试在网络中保留可用“客户端”的列表(可能会出现和消失),例如,UI 中的相应组合框需要更新以反映更改。

文档提到对于这种事情 EVT_UPDATE_UI 将是一个不错的选择。据我从稀疏文档中了解到,这个事件是由系统自动发送的,并为辅助 UI 更改提供了一些支持。

但是,使用更直接的方法我会感觉更舒服,例如,窗口对象可以注册/订阅以接收特定事件的通知(事件或回调),并且代码的另一部分在需要时发送这些通知。我可以使用我自己的代码在 C++ 中做到这一点,但是我想如果 wxWidgets 已经支持类似的东西,我应该使用它。但是,我在这方面还没有发现任何东西。

所以,问题是:wxWidgets 是否支持这种通知系统(或类似的替代方案),或者我最好自己编写代码?

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 投票
3 回答
3820 浏览

python - 如何使 wx 工具栏按钮变大?

我有一个 wx.Toolbar,我想让按钮变大。我已经搜索过,似乎找不到任何关于如何执行此操作的具体文档。

我也想知道这将如何跨平台翻译;OSX 上的按钮和图标会怎样?

0 投票
5 回答
30492 浏览

python - What is the best real time plotting widget for wxPython?

I would like to show a real time graph with one or two curves an up to 50 samples per second using Python and wxPython. The widget should support both Win32 and Linux platforms.

Any hints are welcome.

Edited to add:

I don't need to update the display at 50 fps, but up need to show up to 50 samples of data on both curves, with a reasonable update rate for the display (5..10 fps should be okay).

Edited to add:

I have used mathplotlib in a project with good success. I have then settled for wx.lib.plot for other projects, which I found to be simpler, but somewhat easier to use and consuming less CPU cycles. As wx.lib comes as part of the standard wxPython distribution is is particularly easy to use.

0 投票
1 回答
550 浏览

wxpython - wxWidgets 中的窗口溢出小部件

我正在寻找一种在 Linux 上的 wxPython 中实现这种设计的方法......
我有一个带有按钮的工具栏,当按下按钮时,应该会出现一个弹出窗口,模仿工具栏的扩展(如菜单),并且这个弹出窗口应该显示两列单选按钮(比如 2x5)和一个文本框......我的主要问题是工具栏的高度很小,所以弹出窗口必须溢出窗口/客户区的边界......

我想到了两种可能的实现:

  • 通过使用 wxMenu,因为可以在客户区之外绘制菜单。我担心布局可能性对于我的目标不够灵活
  • 通过使用异形框架。按下按钮将重新塑造框架并根据要求绘制所需的小部件。

我的问题是:我错过了什么/错了吗?:) 这完全可行吗?

0 投票
7 回答
20544 浏览

python - Qt 现在在 LGPL 下发布,你会推荐它而不是 wxWidgets 吗?

我是 wxWidgets 的重度用户,部分原因是许可的原因。

  • 您如何看待 wxWidgets 的未来,以及最近宣布的 Qt 现在在 LGPL 下发布?
  • 您认为 wxwidget 对于新项目来说仍然是一个不错的技术选择吗?或者您会建议采用 Qt,因为它将成为事实上的标准。
  • 我还对这可能对它们与最常见的脚本语言(例如 PyQt、wxPython、wxRuby)的绑定产生的影响感兴趣。为什么 PyQt 有专业级的设计师而 wxPython 却没有得到充分利用?

有关的:

https://stackoverflow.com/questions/443546/qt-goes-lgpl-on-windows-is-it-good-enough-to-use-instead-of-mfc

0 投票
2 回答
705 浏览

event-handling - 在打开的 wx.ComboCtrl 中接收击键

来自这个问题,我有一个带有自定义弹出窗口的 wxComboCtrl,该弹出窗口由带有一堆单选按钮的面板组成。我的问题是,当我打开弹出窗口时,组合没有击键,因为事件由面板本身处理..我想将这些KeyEvents重定向到组合的textctrl,但我找不到让它工作的方法:/
我走错路了吗?我应该在用户按键时手动处理 textctrl 值吗?我认为这会有点麻烦.. 因为据说 textctrl 已经知道如何处理这些事件..

这是我的测试用例(Linux 上的 wxPython 2.8),“on_key”方法应该是罪魁祸首:

编辑:
我在同一主题上发现了这些(未解决的)讨论。
“当显示 ComboPopup 时,ComboCtrl 失去键盘焦点”
“使用 wx.ComboCtrl 的问题”

0 投票
2 回答
1294 浏览

python - 静态文本项目在 wx.StaticBox 中消失

我正在一个垂直大小调整器中创建一个 staticbox 和一个 staticboxsizer。一切对我来说都很好,但不适用于客户的环境。

静态框中的所有内容都会显示,但标签除外。下面的片段显示了我如何构造 staticboxsizer。

comp.MinMaxLabel_* 返回一个 wx.StaticText(label='blah'),没什么花哨的,只是一个包装器,它适用于其他尺寸器中的其他 ~400 个项目。但在 StaticBox 或 StaticBoxSizers 中,客户的设置上没有显示 StaticText。

通常它在我的设置中显示为: alt text http://img152.imageshack.us/img152/8758/normalnu9.jpg

这就是我在客户设置中得到的: alt text http://img258.imageshack.us/img258/2351/problematiczo2.jpg

两种设置都具有相同的 wxpython 版本,即 2.8.9.1。但 2.8.* 也显示在我的环境中。有什么建议么?