python wxpython slider_wx python 基本控件

本文详细介绍了Python的wxPython库中的一些基本控件,包括静态文本、文本输入、多行文本、滑块、按钮、进度条、文件选择对话框等,并探讨了如何响应文本事件和创建各种风格的按钮。此外,还提到了对话框、菜单、向导和图像处理。
摘要由CSDN通过智能技术生成

一、静态文本控件

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,

valida

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值