1

您知道将 wx.lib.platebtn.PlateButton 小部件包含xrc 文件中的方法吗?

到目前为止,我只找到了一种包含 wxWidgets 通用的小部件的方法,但我认为这是 wxpython 特有的(虽然我可能错了)。

我试图了解 XmlResourceHandler 的演示,但这仅适用于面板。我也找不到这个特定案例的好教程。

我将不胜感激你们可以提供的任何建议,或者一个好的教程的链接。

非常感谢。

4

2 回答 2

1

好吧,伙计们,

为了完成,我将回答我自己的问题。Afaik,不可能在 XRC 文件中添加板按钮,但正如 Mike Driscoll 建议的那样(感谢捆绑,伙计!),可以在 XRC 文件中插入一个“未知”变量,如果需要,可以使用占位符在你想要的地方。如下图所示:

<object class="unknown" name="A_Name">
    <variables></variables>
</object>

之后,我进入了我的代码示例并输入了代码,与下面的代码没有什么不同(显然为了您的观看乐趣而通用)。到目前为止它似乎工作,但我无法更改对self.MyBtn所做的任何设置,只有标志似乎有任何效果,但这也可能是我的 sizer 设置所特有的。如果你不这么认为,请随时告诉我。我总是对更好、更高效或更优雅的解决方案感兴趣。

class MyFrame(wx.Frame):
    def __init__(self, parent):
        self.res = xrc.XmlResource("my_xrc_file.xrc")
        self.frame = self.res.LoadFrame("MyFrame")

        imageFile = "/a/path/to/your/file"
        png = wx.Image(imageFile, wx.BITMAP_TYPE_ANY).ConvertToBitmap()

        self.MyBtn = wx.lib.platebtn.PlateButton(self.frame, bmp=png,
                style=platebtn.PB_STYLE_TOGGLE|platebtn.PB_STYLE_DEFAULT)
        self.PlateBtn = self.res.AttachUnknownControl("MyBtn",
                                        self.MyBtn, self.frame) # this returns a bool

我希望它对你们中的一些人有所帮助。

于 2012-04-25T11:16:08.553 回答
0

As I recall, there's a way to define your own widgets in XRC, but I can't quite remember where I read about that. Maybe check out the references at the end of the following article: http://www.blog.pythonlibrary.org/2010/10/28/wxpython-an-xrced-tutorial/

I do know that you can use the XRC editor that comes with wxPython's demo to add an "unknown" control. You may be able to do it that way. See http://wiki.wxpython.org/UsingXmlResources#AttachUnknownControl_and_Control_Size or Robin Dunn's answer here: https://groups.google.com/forum/?fromgroups#!topic/wxPython-users/4VAXC7WldFo

于 2012-04-20T19:10:11.803 回答