如何在wxglade中添加自定义小部件

Nic*_*son 5 python wxpython wxglade

我有一个用 wxglade 制作的应用程序。我添加了一个媒体控件来播放 mp3:s。如果没有媒体控制,应用程序将以 800x600px 的框架启动。但是当我添加媒体控件时,框架非常小。我相信这是因为我没有将其添加到 sizer 中。但我必须这样做吗?无论如何,媒体控件不应该显示任何内容。

所以,我的问题是,如何将媒体控件添加到我的应用程序中,而不会(a)破坏使用 wxglade 更新 gui 的可能性以及(b)失去以正确大小启动的能力?

如果可以的话我不会在# Begin wxglade和之间放置任何东西# End wxglade。因为如果我用 wxglade 更改我的 gui(无论如何根据早期的测试),它就会被破坏。

编辑:我提供的代码片段没有添加任何有趣的内容。我还编辑了问题以使其更加清晰,以便其他有相同问题的人可以找到答案。

joa*_*uin 4

一个快速技巧:

  1. 在您的小部件应该所在的位置,插入一个wx.PanelwxGlade 并为其指定名称mymediactrl,而不是例如mypanel
  2. 然后,在生成脚本后,将 MediaControl 类导入(或插入其代码)到 wxglade 允许(不可写)的位置(在由 ' # begin wxGlade ' 和 ' # end wxGlade分隔的部分之外的空间中) ' 标签)。
  3. 最后,mymediactrl=wx.Panel(...)用您的行手动修改脚本中的行 mymediactrl = MediaControl(...)。注意:当你修改你的GUI时,必须手动维护这一行,因为wxglade会重写它。

正确的做法:

您可以使用 wxglade 小部件集的 CustomWidget 小部件。如果您有 wxglade 经验,这是推荐的方法。

在此输入图像描述

专业方法:

您可以将自己的自定义小部件添加到 wxglade 小部件集中。您在这里有一些示例和如何操作的教程

  • 抱歉,我正忙着其他事情,所以我不得不把我的答案一点点写下来......现在想来答案已经完成了 (2认同)