wxpython控件

上一篇 / 下一篇  2015-09-28 18:40:33 / 个人分类:python

转自http://blog.sina.com.cn/s/blog_834a276b0102v9vh.html

wxpython控件总结

一、静态文本控件

wx.StaticText(parent, id, label, pos=wx.DefaultPosition,

    size=wx.DefaultSize, style=0, name="staticText")

wx.StaticText构造函数的参数

parent:父窗口部件。

id:标识符。使用-1可以自动创建一个唯一的标识。

label:你想显示在静态控件中的文本。

pos:一个wx.Point或一个Python元组,它是窗口部件的位置。

size:一个wx.Size或一个Python元组,它是窗口部件的尺寸。

style:样式标记。

name:对象的名字,用于查找的需要。

其中样式

wx.ALIGN_CENTER:静态文本位于静态文本控件的中心。

wx.ALIGN_LEFT:文本在窗口部件中左对齐。这是默认的样式。

wx.ALIGN_RIGHT:文本在窗口部件中右对齐。

wx.ST_NO_AUTORESIZE:如果使用了这个样式,那么在使用了SetLabel()改变文本之后,静态

文本控件不将自我调整尺寸。你应结合使用一个居中或右对齐的控件来保持对齐。


二、文本输入控件

wx.TextCtrl的样式

wx.TE_CENTER:控件中的文本居中。

wx.TE_LEFT:控件中的文本左对齐。默认行为。

wx.TE_NOHIDESEL:文本始终高亮显示,只适用于Windows

wx.TE_PASSWORD:不显示所键入的文本,代替以星号显示。

wx.TE_PROCESS_ENTER:如果使用了这个样式,那么当用户在控件内按下回车键时,一个文本

输入事件被触发。否则,按键事件内在的由该文本控件或该对话框管理。

wx.TE_PROCESS_TAB:如果指定了这个样式,那么通常的字符事件在Tab键按下时创建(一般意

味一个制表符将被插入文本)。否则,tab由对话框来管理,通常是控件间的切换。

wx.TE_READONLY:文本控件为只读,用户不能修改其中的文本。

wx.TE_RIGHT:控件中的文本右对齐。

对于添加文本和移动插入点,该文本控件自动管理用户的按键和鼠标事件。对于该文本控件可

用的命令控制组合说明如下:

:剪切

:复制

:粘贴

:撤消

AppendText(text):在尾部添加文本。

Clear():重置控件中的文本为“”。并且生成一个文本更新事件。

EmulateKeyPress(event):产生一个按键事件,插入与事件相关联的控制符,就如同实际的按

键发生了。

GetInsertionPoint()

SetInsertionPoint(pos)

SetInsertionPointEnd():得到或设置插入点的位置,位置是整型的索引值。控件的开始位置

是0。

GetRange(from, to):返回控件中位置索引范围内的字符串。

GetSelection()

GetStringSelection()

SetSelection(from, to):GetSelection()以元组的形式返回当前所选择的文本的起始位置的

索引值(开始,结束)。GetStringSelection()得到所选择的字符串。SetSelection(from,

to)设置选择的文本。

GetValue()

SetValue(value):SetValue()改变控件中的全部文本。GetValue()返回控件中所有的字符串

Remove(from, to):删除指定范围的文本。

Replace(from, to, value):用给定的值替换掉指定范围内的文本。这可以改变文本的长度。

WriteText(text):类似于AppendText(),只是写入的文本被放置在当前的插入点。

 


三、多行文本控件 wx.TE_MULTILINE

wx.HSCROLL:如果文本控件是多行的,并且如果该样式被声明了,那么长的行将不会自动换行,并显示水平滚动条。该选项在GTK+中被忽略。

wx.TE_AUTO_URL:如果丰富文本选项被设置并且平台支持的话,那么当用户的鼠标位于文本中的一个URL上或在该URL上敲击时,这个样式将导致一个事件被生成。

wx.TE_DONTWRAP:wx.HSCROLL的别名。

wx.TE_LINEWRAP:对于太长的行,以字符为界换行。某些操作系统可能会忽略该样式。

wx.TE_MULTILINE:文本控件将显示多行。

wx.TE_RICH:用于Windows下,丰富文本控件用作基本的窗口部件。这允许样式文本的使用。

wx.TE_RICH2:用于Windows下,把最新版本的丰富文本控件用作基本的窗口部件。

wx.TE_WORDWRAP:对于太长的行,以单词为界换行。许多操作系统会忽略该样式。

四、创建字体

wx.Font(pointSize, family, style, weight, underline=False,

faceName="", encoding=wx.FONTENCODING_DEFAULT)

wx.DECORATIVE:一个正式的,老的英文样式字体。

wx.DEFAULT:系统默认字体。

wx.MODERN:一个单间隔(固定字符间距)字体。

wx.ROMAN:serif字体,通常类似于Times New Roman。

wx.SCRIPT:手写体或草写体

wx.SWISS:sans-serif字体,通常类似于Helvetica或Arial。

style参数指明字体的是否倾斜,它的值有:wx.NORMAL, wx.SLANT, 和 wx.ITALIC。同样,weight参数指明字体的醒目程度,可选值有:wx.NORMAL, wx.LIGHT,或wx.BOLD。这些常量值的行为根据它的名字就可以知道了。underline参数仅工作在Windows系统下,如果取值为 True,则加下划线,False为无下划线。

faceName参数指定字体名。

encoding参数允许你在几个编码中选择一个,它映射内部的字符和字本显示字符。编码不是Unicode编码,只是用于wxPython的不同的8位编码。大多数情况你可以使用默认编码。


五、响应文本事件

frame.Bind(wx.EVT_TEXT, frame.OnText, text)

EVT_TEXT:当控件中的文本改变时产生该事件。文本因用户的输入或在程序中使用SetValue()而被改变,都要产生该事件。

EVT_TEXT_ENTER:当用户在一个wx.TE_PROCESS_ENTER样式的文本控件中按下了回车键时,产生该事件。

EVT_TEXT_URL:如果在Windows系统上,wx.TE_RICH或wx.TE_RICH2样式被设置了,并且wx.TE_AUTO_URL样式也被设置了,那么当在文本控件内的URL上发生了一个鼠标事件时,该事件被触发。

EVT_TEXT_MAXLEN:如果使用SetMaxLength()指定了该控件的最大长度,那么当用户试图输入更长的字符串时,该事件被触发。你可能会用这个,例如,这时给用户显示一个警告消息。


六、使用按钮

1.文本按钮 

wx.Button(parent, id, label, pos, size=wxDefaultSize, style=0,

    validator, name="button")

2.位图按钮

wx.BitmapButton(panel, -1, bmp, pos=(10, 20))

3.开关按钮(toggle button)

wx.ToggleButton(panel, -1,u"开关", pos=(10, 150))

当你按下一个开关按钮(toggle button)时,它将一直保持被按下的状态直到你再次敲击它。

在wx.ToggleButton与父类wx.Button之间只有丙个区别:

a、当被敲击时,wx.ToggleButton发送一个EVT_TOGGLEBUTTON事件。

b、wx.ToggleButton有GetValue()和SetValue()方法,它们处理按钮的二进制状态。

4.通用按钮

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

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

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

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

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

 

滑块(slider)

滑块是一个窗口部件,它允许用户通过在该控件的尺度内拖动指示器来选择一个数值。在wxPython中,该控件类是wx.Slider,它包括

了滑块的当前值的只读文本的显示。

wx.Slider(parent, id, value, minValue, maxValue,

    pos=wxDefaultPosition, size=wx.DefaultSize,

    style=wx.SL_HORIZONTAL, validator=wx.DefaultValidator,

    name="slider")

wx.Slider的样式

wx.SL_AUTOTICKS:如果设置这个样式,则滑块将显示刻度。刻度间的间隔通过SetTickFreq方法来控制。

wx.SL_HORIZONTAL:水平滑块。这是默认值。

wx.SL_LABELS:如果设置这个样式,那么滑块将显示两头的值和滑块的当前只读值。有些平台可能不会显示当前值。

wx.SL_LEFT:用于垂直滑块,刻度位于滑块的左边。

wx.SL_RIGHT:用于垂直滑块,刻度位于滑块的右边。

wx.SL_TOP:用于水平滑块,刻度位于滑块的上部。

wx.SL_VERTICAL:垂直滑块。

 

GetRange()

SetRange(minValue, maxValue):设置滑块的两端值。

GetTickFreq()

SetTickFreq(n, pos):使用参数n设置刻度的间隔。参数pos没有被使用,但是它仍然是必要的,将它设置为1。

GetLineSize()

SetLineSize(lineSize):设置你每按一下方向键,滑块所增加或减少的值。

GetPageSize()

SetPageSize(pageSize):设置你每按一下PgUp或PgDn键,滑块所增加或减少的值。

GetValue()

SetValue(value):设置滑块的值。

 

微调控制器

wx.SpinCtrl

wx.SpinCtrl(parent, id=-1, value=wx.EmptyString,

    pos=wx.DefaultPosition, size=wx.DefaultSize,

    style=wx.SP_ARROW_KEYS, min=0, max=100, initial=0,

    name="wxSpinCtrl")

 

 


进度条 wx.Gauge

wx.Gauge(parent, id, range, pos=wx.DefaultPosition,

    size=wx.DefaultSize, style=wx.GA_HORIZONTAL,

    validator=wx.DefaultValidator, name="gauge")


复选框 wx.CheckBox

wx.CheckBox(parent, id, label, pos=wx.DefaultPosition,

    size=wx.DefaultSize, style=0, name="checkBox")

label参数是复选框的标签文本。复选框没有样式标记,但是它们产生属于自己的独一无二的命令事件:EVT_CHECKBOX。wx.CheckBox的开关状

态可以使用GetValue()和SetValue(state)方法来访问,并且其值是一个布尔值。IsChecked()方法等同于GetValue()方法,只是为了让代码看起

来更易明白。

 

单选按钮(radio button)

wx.RadioButton

wx.RadioBox

wx.RadioButton(parent, id, label, pos=wx.DefaultPosition,

    size=wx.DefaultSize, style=0,

    validator=wx.DefaultValidator, name="radioButton")

wx.RadioBox(parent, id, label, pos=wx.DefaultPosition,

    size=wxDefaultSize, choices=None, majorDimension=0,

    style=wx.RA_SPECIFY_COLS, validator=wx.DefaultValidator,

    name="radioBox")

wx.RadioBox的方法

EnableItem(n, flag):flag参数是一个布尔值,它用于使索引为n的按钮有效或无效。要使整个框立即有效,使用Enable()。

FindString(string):根据给定的标签返回相关按钮的整数索引值,如果标签没有发现则返回-1。

GetCount():返回框中按钮的数量。

GetItemLabel(n)

SetItemLabel(n, string):返回或设置索引为n的按钮的字符串标签。

GetSelection()

GetStringSelection()

SetSelection(n)

SetStringSelection( string):GetSelection() 和 SetSelection()方法处理当前所选择的单选按钮的整数索引。GetStringSelection()返回当前所选择的按钮的字符串标 签,SetStringSelection()改变所选择的按钮的字符串标签为给定值。没有set*()产生EVT_RADIOBOX事件。

ShowItem(item, show):show参数是一个布尔值,用于显示或隐藏索引为item的按钮。

 


列表框wx.ListBox

wx.ListBox(parent, id, pos=wx.DefaultPosition,

    size=wx.DefaultSize, choices=None, style=0,

    validator=wx.DefaultValidator, name="listBox")

wx.LB_EXTENDED:用户可以通过使用shift并敲击鼠标来选择一定范围内的连续的选项,或使用等同功能的按键。

wx.LB_MULTIPLE:用户可以一次选择多个选项(选项可以是不连续的)。实际上,在这种情况下,列表框的行为就像是一组复选框。

wx.LB_SINGLE:用户一次只能选一个选项。实际上,在这种情况下,列表框的行为就像是一组单选按钮。


列表框的滚动条类型样式

wx.LB_ALWAYS_SB:列表框将始终显示一个垂直的滚动条,不管有没有必要。

wx.LB_HSCROLL:如果本地控支持,那么列表框在选择项太多时,将创建一个水平滚动条。

wx.LB_HSCROLL:列表框只在需要的时候显示一个垂直的滚动条。这是默认样式。

还有一个样式wx.LB_SORT,它使得列表中的元素按字母顺序排序


列表框的方法

Append(item):把字符串项目添加到列表框的尾部。

Clear():清空列表框。

Delete(n):删除列表框中索引为n的项目。

Deselect(n):在多重选择列表框中,导致位于位置n的选项取消选中。在其它样式中不起作用。

FindString(string):返回给定字符串的整数位置,如果没有发现则返回-1。

GetCount():返回列表中字符串的数量。

TAG:

 

评分:0

我来说两句

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 30461
  • 日志数: 51
  • 建立时间: 2013-03-01
  • 更新时间: 2016-07-20

RSS订阅

Open Toolbar