wxpython学习笔记(一)
最近在写一个小程序用来显示在audacious中播放的音乐的歌词,暂取名为pyLyric。由于audacious并未提供python的编程借口,所以不太可能将其写成插件形式,因此只能写成一个独立的程序了。目前已完成的部分可以正常显示歌词,并能实时获取播放器的信息(这是靠audacious-announcer实现的)。接下来要做得是GUI以及歌词下载功能。GUI方面打算用wxpython。之前曾学过一段时间,可以始乱终弃,半途而废,现在基本上不记得什么了,惭愧。。。今日重出江湖,但愿能成就一番“事业”。兹定于今日起,每日研读相关书籍,记录只言片语,小思微议,积少成多,功利必定日益相增,鸿图大志可图矣!
GUI的一些基本概念是不消说了,从前终日混迹在Windows之中,什么窗口,事件驱动等,其大意也早已明白了七八成。其中一點值得注意的是在wxpython中,我们所看见的“窗口”叫做Frame,而任何可见的对象被称做Windows,也叫Widget。
import wx
"""A simple wxPython
program"""
class
App(wx.App):
define OnInit(self):
frame=wx.frame(parent=None,title='Bare')
frame.Show()
return True
if __name__=='__main__':
app=App()
app.MainLoop()
以上这段代码是一个最基本的wxpython程序的,仅仅显示一个空白的窗口。但麻雀虽小,五脏俱全。这也是最基本的wxpython的框架。wxpthon中所有方法的都是采用大写字母开头,比如:MainLoop, App。
在wxpython中鼓励采用上面的import,而不是from wxPython.wx import *。另外,在导入任何其他wxpython的package前,最好先导入wx。因为wx会做一些初始化的工作,一些其他的subpackage可能需要这些初始化的信息。虽然在python中,导入package的顺序是没有限制的。
OnInit()方法会被父类wx.App调用,从而完成初始化工作。
当一个模块(module)首句是字符串的话,那么它将会作为该模块的简短说明而放入 __doc__中。
今日事今日毕。明日继续深入学习wxPython!!!