您知道将 wx.lib.platebtn.PlateButton 小部件包含在xrc 文件中的方法吗?
到目前为止,我只找到了一种包含 wxWidgets 通用的小部件的方法,但我认为这是 wxpython 特有的(虽然我可能错了)。
我试图了解 XmlResourceHandler 的演示,但这仅适用于面板。我也找不到这个特定案例的好教程。
我将不胜感激你们可以提供的任何建议,或者一个好的教程的链接。
非常感谢。
好吧,伙计们,
为了完成,我将回答我自己的问题。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
我希望它对你们中的一些人有所帮助。
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