【本期导读】
主界面开发,确定基本模块
沉寂一整周了,今天终于把主界面做好了。
最近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)
主界面和关于窗体截图如下:
【下期提示】
完成字典管理模块