Python In Action:三、再来一个扩展例子,保证不难

在窗口显示一张图片,代码如下:

 1 import wx
 2
 3 class Frame(wx.Frame):
 4     """Frame class that displays an image."""
 5
 6     def __init__(self, image, parent=None, id=-1,
 7                  pos=wx.DefaultPosition, title=‘Hello, wxPython!‘):
 8         """Create a Frame instance and display image."""
 9         temp = image.ConvertToBitmap()
10         size = temp.GetWidth(), temp.GetHeight()
11         wx.Frame.__init__(self, parent, id, title, pos, size)
12         self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)
13         self.SetClientSize(size)
14
15 class App(wx.App):
16     """Application class."""
17
18     def OnInit(self):
19         image = wx.Image(‘wxPython.jpg‘, wx.BITMAP_TYPE_JPEG)
20         self.frame = Frame(image)
21         self.frame.Show()
22         self.SetTopWindow(self.frame)
23         return True
24
25 def main():
26     app = App()
27     app.MainLoop()
28
29 if __name__ == ‘__main__‘:
30     main()

运行结果:

自定义的App,其他的不用说,之前的篇章讲过:只是有一句新的写法:

image = wx.Image(‘wxPython.jpg‘, wx.BITMAP_TYPE_JPEG)看过代码的人,就能猜到了,定义一个图片对象,格式JPEG。

在Frame里:
 temp = image.ConvertToBitmap()在组件上显示的位图图像,所以要转换成位图.
 size = temp.GetWidth(), temp.GetHeight()得到图像的宽、高,这种写法很新颖,可以多学学,返回一个tuple
 self.bmp = wx.StaticBitmap(parent=self, bitmap=temp)自然就是图像组件了(不然硬盘里的图像没法绘制在窗口上)。这里,我比较注重的是它的参数,parnet=self意思是父窗口为Frame,这样就自动包含在了Frame中
self.SetClientSize(size)最后,将窗口大小设置成图片大小

打完收工!

下一篇:小小总结
				
时间: 2024-10-29 19:10:22

Python In Action:三、再来一个扩展例子,保证不难的相关文章

Python In Action:三、稍稍扩展

#!/usr/bin/env python """Spare.py is a starting point for simple wxPython programs.""" import wx class Frame(wx.Frame): pass class App(wx.App): def OnInit(self): self.frame = Frame(parent=None, title='Spare') self.frame.Show(

Python In Action:一、入门小例子

Python In Action这本书真是有点猛,一开头就来这么个例子: 1 import wx 2 class MyFrame(wx.Frame): 3 def __init__(self): 4 wx.Frame.__init__(self,None,-1,'My Frame',size=(300,300)) 5 panel=wx.Panel(self,-1) 6 panel.Bind(wx.EVT_MOTION,self.OnMove) 7 wx.StaticText(panel,-1,'

Python学习第三天(一个简单制作导入模块)

Python一个简单的模块制作和导入 一个简单的模块 [[email protected] python]# cat my.py name = 'I am wuang!' 导入模块 >>> import my >>> print my.name I am wuang! 直接导入模块属性名字 >>> from my import name >>> print name I am wuang!

Python In Action:二、 最小的GUI程序:麻雀虽小,五脏俱全

Python in Action第二个例子,倒是很简单,却是最基本的GUI程序框架,里面有最基本的实现GUI流程 1 import wx 2 class MyApp(wx.App): 3 def OnInit(self): 4 frame=wx.Frame(parent=None,title='Bare') 5 frame.Show() 6 return True 7 app=MyApp() 8 app.MainLoop() 结果: 有必要提一下第一行:import wx 这条语句是导入wx模块

Python机器学习(三)--决策树算法

一.决策树原理 决策树是用样本的属性作为结点,用属性的取值作为分支的树结构. 决策树的根结点是所有样本中信息量最大的属性.树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性.决策树的叶结点是样本的类别值.决策树是一种知识表示形式,它是对所有样本数据的高度概括决策树能准确地识别所有样本的类别,也能有效地识别新样本的类别. 决策树算法ID3的基本思想: 首先找出最有判别力的属性,把样例分成多个子集,每个子集又选择最有判别力的属性进行划分,一直进行到所有子集仅包含同一类型的数据为止.最后

python学习第三个坑

##########################python 第三章 ################################这一章呢,主要是文件的操作,还有涉及到函数的一部分. PS:整理博客很是费事,这就是我写的笔记,本来在线下挺好看的.拿到这里就成这熊样了,没办法...凑活着看吧 文件操作: 文件操作一般用open,或者用file,格式如下:变量名 = open('文件路径','模式','字符编码') 读取文件需要操作硬件,用户是无法直接操作硬件的,一般操作系统才有这个功能去调

Python基础第三篇

一.collections系列 Counter是对字典类型的补充,用于追踪值的出现次数,具备字典的所有功能 + 自己的功能 1.计数器Counter import collections a='abababsbsbhh' c=collections.Counter(a) #直接列出每个元素出现了几次,传入列表和元组也一样 print(c) #输出:Counter({'b': 5, 'a': 3, 'h': 2, 's': 2}) #most_common 列出Counter内的前几个 print

Python学习(三):入门篇:Python中怎么编写类

Python中怎么编写类 Last Edit 2013/5/2 先看一个例子: #person.py class person: """class to representaion a person""" def __init__(self,name,age): self.name=name if 0<age<=150: self.age=age else: print 'age is no valid!' def display(s

Python 基础语法(三)

Python 基础语法(三) --------------------------------------------接 Python 基础语法(二)-------------------------------------------- 七.面向对象编程 python支持面向对象编程:类和对象是面向对象编程的两个主要方面,类创建一个新的类型,对象是这个类的实例. 对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域:对象也可以使用属于类的函数,这样的函数称为类的方法:域和方法可