【问题标题】:Including wx.lib.platebtn in an XRC file?在 XRC 文件中包含 wx.lib.platebtn?
【发布时间】:2012-04-19 15:55:04
【问题描述】:

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

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

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

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

非常感谢。

【问题讨论】:

    标签: python wxpython xrc


    【解决方案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
    

    希望对大家有所帮助。

    【讨论】:

      【解决方案2】:

      我记得,有一种方法可以在 XRC 中定义您自己的小部件,但我不太记得我是在哪里读到的。不妨看看下面文章末尾的参考资料:http://www.blog.pythonlibrary.org/2010/10/28/wxpython-an-xrced-tutorial/

      我知道您可以使用 wxPython 演示附带的 XRC 编辑器来添加“未知”控件。你也许可以这样做。请参阅http://wiki.wxpython.org/UsingXmlResources#AttachUnknownControl_and_Control_Size 或 Robin Dunn 的答案:https://groups.google.com/forum/?fromgroups#!topic/wxPython-users/4VAXC7WldFo

      【讨论】:

      • 谢谢,伙计!我暂时使用了一种解决方法,以便让逻辑正常工作。我会仔细查看它,如果我找到完成它的方法,我会发布一个模板代码供其他人查看。不幸的是,XRC 教程非常笼统,文档也很少。非常感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多