Wx Python-代码结构和事件处理

你好,
我刚刚开始使用wxpython开始写gui
使用TKINTER的限制.我已经阅读了有关wxpython和
考虑到我从后一个GUI开始,慢慢习惯了
首先!
我必须首先引用我是Python的新手用户,所以问题I
似乎很明显,但请对我耐心!
我注意到我用来创建我的所有wxpython参考
应用程序" CRAM"框架子类中的所有代码.这是
当您考虑小型应用程序时,很好,但是什么时候
成长为非常复杂的应用?这创造了我的第一个问题:
在哪里可以找到有关WXPYTHON代码练习的信息/
考虑复杂的较大GUI时的结构?
没有任何参考,我决定通过破坏我的owm方法
将我的框架中的顶层面板作为个体类对象.和
然后构建各个面板的小部件
课程.这导致了我的第二个问题,我该如何使用和事件
面板在其他面板中产生效果?例如,如果我有
一个面板中的按钮,希望更改标签的文本
其他面板,最好的方法是什么?我应该打破代码吗
转入模块?
当然,您可能会解释我接近这一点的方式
完全错了,如果是这样,请告诉我,我真的很想得到基本
在我开始使代码更复杂之前的结构.
我期待您的帮助
------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------ ----------------------------------------------------
我在下面列出了一些代码,以帮助解释我希望的概念
达到,
导入WX
类框架(wx.frame):
def __init __(自我):
wx.frame .__ init __(self,none,
title ="应用程序",size =(400,400))
panel1 = wx.panel(self,-1,size =(200,200))
panel2 = wx.panel(self,-1,size =(200,200))
sizer = wx.flexgridsizer(2,2,5,5)
sizer.Add(面板1)
sizer.Add(面板2)
self.SeterSizerAndFit(sizer)
util1 = utils1(panel1)
UTIL2 = UTILS2(PANEL2)
utils1()类:
def __init __(自我,面板):
按钮= wx.button(面板,-1,"按钮1")
panel.bind(wx.evt_button,self.onclick,按钮)
self.label = wx.statictext(面板,-1,"我的处理程序",
名称=" lab1")
sizer = wx.boxsizer(wx.vertical)
sizer.Add(按钮)
sizer.Add(self.label)
panel.setsizerAndfit(sizer)
def onClick(self,evt):
self.label.setlabel("你改变了我")
类Utils2()类:
def __init __(自我,面板):
self.button = wx.button(面板,-1,"按钮2")
panel.bind(wx.evt_button,self.onclick,self.button)
def onClick(self,evt):
"""什么是更改文本的最简单和接受的方法

一个不同的类实例?"""
经过
#???.setlabel("你改变了我")
app = wx.pysimpleapp()
帧=帧()
frame.show()
app.mainloop()

# 回答1


在9月9日,3:05*PM,Lee.Walc ...@gmail.com写道:
这些是WXPYTHON列表的好问题.你会学到很多
那里:http://wxpython.org/maillist.php
您还会找到"样式指南帮助" l:http://wiki.wxpython.org/wxpython%20style%20Guide
在我更复杂的应用程序中,我会自己做小部件
函数,或者对于wx.notebook,我会自己做每本"书"
模块通过子类别can.panel对象或类似物体.如果你这样做
在他们自己的模块子类中的某种东西,然后是事件处理程序
也可以去那里.
迈克
# 回答2


李,
您是否考虑过使用Model-View-Presenter模式?有一个不错的
wxpython Wiki上的示例:http://wiki.wxpython.org/modelviewpresenter
这很好地扩展到了复杂的GUI.掌握概念并写
初始代码是困难的部分.然后,代码更容易开发和
维持.
还有模型视图控制器模式.讨论两个
这些模式可以在WXPYTHON WIKI和WXPYTHON列表档案中找到.
为了进一步简化/可维护性,我建议使用XRC
在可能的情况下创建小部件层次结构的资源.我的偏爱是
使用Xrced用嵌入的资源生成Python代码.再次
咨询WXPYTHON WIKI,WXPYTHON列表档案 - 加上WXPYTHON演示
(在窗口布局 - > xmlresource下)
斯蒂芬
news:b5**********************************@m73g2000 hsh.googlegroups.com...
# 回答3


感谢您的反馈.非常感谢.
让我查看您的参考文献,看看他们带我去哪里.
将退后,让您知道这有多有用.
谢谢!李

标签: python

添加新评论