【本期导读】 主界面开发,确定基本模块
沉寂一整周了,今天终于把主界面做好了。
最近7天特别忙,赶上公司项目发布最新版本,一大堆的测试任务不敢懈怠,当学习与工作冲突时还是应当以工作为重,学习暂放一边,所以这次学习比计划多花了几天,不过虽然内容很少,但也遇到了几个难题:
1.如何给窗体加上一个背景图片?
2.如何使HtmlWindow内的链接正常打开?
我想在窗体上显示一张背景图片,于是翻看wxPthon 的API文档,想找找有没有像VB里的frame的picture属性,但出乎意料的时,wx.Window中并没有这种属性,虽然可以在此之上再放一个图片控件,来达到同样的效果,正在发愁,于是拿起《wxPython in Action 》(下文简称为PA)这本书快速探索一遍,终于找到办法了,原来要实现这样的效果,需要建立定制,参照里面的办法写了一个可以配置背景图片的window类:
 1import wx
 2
 3class ImageBackGroundWindow(wx.Window):
 4    def __init__(self, parent, image):
 5        wx.Window.__init__(self, parent)
 6        self.photo = image.ConvertToBitmap()
 7        self.positions = [(0,0)]
 8        self.Bind(wx.EVT_PAINT, self.OnPaint)
 9    def OnPaint(self, evt):
10        dc = wx.PaintDC(self)
11        brush = wx.Brush("sky blue")
12        dc.SetBackground(brush)
13        dc.Clear()
14        for x,y in self.positions:
15            dc.DrawBitmap(self.photo, x, y, True)
主界面剩余的难题就是怎么组织代码,UI编程最麻烦的就是这个了,再加上目前也没搜到什么好的为Python量身定做的UI设计工具,只能自己一行一行地写了,但这时就需要注意组织代码了,不然一个复杂的界面写出来都是一大堆难看懂的锁碎代码,我只是一个测试员,对开发接触才刚起步,对这方面的意识暂时也没有什么好的想法,但在《PA》一书中有讲到怎么写出一个漂亮简洁的wxPthon界面代码,有时间一定要好好研究一下。
经过几天的努力,主界面基本框架算是弄好了,剩下的就是各个业务模板的界面及具体业务实现了。我首先挑最容易的来处理,先做关于对话框,不过在做这个窗体时也遇到一个问题,即上述的第2个问题,后来发现是因为在htmlWindow类中少了这个方法:
1def OnLinkClicked(self, linkinfo):
2            import webbrowser
3            webbrowser.open(linkinfo.GetHref(), 1)

主界面和关于窗体截图如下:
main.jpgabout.jpg
【下期提示】 完成字典管理模块