Chinaunix首页 | 论坛 | 博客
  • 博客访问: 576680
  • 博文数量: 226
  • 博客积分: 10080
  • 博客等级: 上将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-26 11:15
文章分类

全部博文(226)

文章存档

2011年(5)

2010年(64)

2009年(99)

2008年(37)

2007年(21)

我的朋友

分类: LINUX

2010-02-12 13:29:48

通用按钮是一个完全用Python重新实现的一个按钮窗口部件,回避了本地系统窗口部件的用法。它的父类是wx.lib.buttons. GenButton。通用按钮有通用位图和切换按钮。

这儿有几个使用通用按钮的原因:

1、通用按钮比本地按钮具有更好的跨平台的外观。另一方面,通用按钮可能在具体的系统上看起来与本地按钮有些微的不同。

2、使用通用按钮,你对它的外观有更多的控制权,并且能改变属性,如3D斜面的宽度和颜色,而这对于本地控件可能是不允许的。

3、通用按钮类允许特性的合并,而wxWidget按钮不行。比如GenBitmapTextButton允许文本标签和位图的组合,GenBitmapToggleButton实现一个位图切换按钮。

4、如果你正在创建一个按钮类,使用通用按钮是较容易的。由于其代码和参数是用Python写的,所以当创建一个新的子类的时候,对于检查和覆盖,它们的可用性更好。

图7.6显示了实际的通用按钮和常规按钮的对照。


#! /usr/bin/env python

#coding=utf-8
import wx
import wx.lib.buttons as buttons
class GenericButtonFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Generic Button Example',
size=(500, 350))
panel = wx.Panel(self, -1)
sizer = wx.FlexGridSizer(1, 3, 20, 20)
b = wx.Button(panel, -1, "A wx.Button")
b.SetDefault()
sizer.Add(b)
b = wx.Button(panel, -1, "non-default wx.Button")
sizer.Add(b)
sizer.Add((10,10))
b = buttons.GenButton(panel, -1, 'Genric Button')#基本的通用按钮
sizer.Add(b)
b = buttons.GenButton(panel, -1, 'disabled Generic')#无效的通用按钮
b.Enable(False)
sizer.Add(b)
b = buttons.GenButton(panel, -1, 'bigger')#自定义尺寸和颜色的按钮
b.SetFont(wx.Font(20, wx.SWISS, wx.NORMAL, wx.BOLD, False))
b.SetBezelWidth(5)
b.SetBackgroundColour("Navy")
b.SetForegroundColour("white")
b.SetToolTipString("This is a BIG button...")
sizer.Add(b)
bmp = wx.Image("1.gif", wx.BITMAP_TYPE_GIF).ConvertToBitmap()
b = buttons.GenBitmapButton(panel, -1, bmp)#通用位图按钮
sizer.Add(b)
b = buttons.GenBitmapToggleButton(panel, -1, bmp)#通用位图开关按钮
sizer.Add(b)
b = buttons.GenBitmapTextButton(panel, -1, bmp, "Bitmapped Text",
size=(175, 75))#位图文本按钮
b.SetUseFocusIndicator(False)
sizer.Add(b)
b = buttons.GenToggleButton(panel, -1, "Toggle Button")#通用开关按钮
sizer.Add(b)
panel.SetSizer(sizer)
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = GenericButtonFrame()
frame.Show()
app.MainLoop()

阅读(1293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~