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

时间:2012-01-20 12:41:48

标签: python wxpython wxglade

我有一个用wxglade制作的应用程序。我添加了一个mediacontrol,以便能够播放mp3:s。如果没有mediacontrol,应用程序将以800x600px的帧开始。但是当我添加mediacontrol时,框架非常小。我相信这是因为我没有把它添加到sizer中。但我必须这样做吗? mediacontrol不应该显示任何东西。

所以,我的问题是,如果没有(a)打破用wxglade更新gui和(b)失败的可能性,如何在我的应用中添加一个mediacontrol能够以合适的尺寸开始吗?

如果可以,我不会在# Begin wxglade# End wxglade之间放置任何内容。因为如果我用wxglade改变我的gui它会被破坏(根据之前的测试,无论如何)。

编辑:我提供的代码段不会添加任何感兴趣的内容。我还将问题编辑得更清楚,以便有同样问题的其他人可以找到这个答案。

1 个答案:

答案 0 :(得分:4)

快速诀窍:

  1. 在您的小部件所在的位置,插入带有wxGlade的wx.Panel 并将其命名为mymediactrl,而不是mypanel
  2. 然后,在生成脚本后,导入(或插入代码) 您的MediaControl类在wxglade允许(不可写)的位置 (在'#begin wxGlade '和。分隔的部分之外的空间中 ' #end wxGlade '标签)。
  3. 最后,使用您的手动修改脚本中的mymediactrl=wx.Panel(...)mymediactrl = MediaControl(...)行。注意:此行必须手动维护 你修改你的GUI因为wxglade会重写它。
  4. 正确方法:

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

    enter image description here

    Pro方法:

    您可以将自己的自定义窗口小部件添加到wxglade窗口小部件集。 您有一些示例和how to do it here

    的教程