wxpython界面怎么添加静态文本_wxpython显示静态文本

wx作为一个GUI图形界面的模块一定要显示文本。

先显示静态文本吧。

wxpython中wx.StaticText可以显示静态文本。

wx.StaticText 构造函数的参数

parent :父窗口部件。

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

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

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

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

style :样式标记。

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

接下来我们更详细地讨论样式标记。

一些专用于wx.StaticText 的样式。

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

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

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

wx.ST_NO_AUTORESIZE :如果使用了这个样式,那么在使用了SetLabel() 改变文本之后,静态文本控件不将自我调整尺寸。你应结合使用一个居中或右对齐的控件来保持对齐。

wx.StaticText 控件覆盖了SetLabel() ,以便根据新的文本来调整自身,除非wx.ST_NO_AUTORESIZE 样式被设置了。

当创建了一个居中或右对齐的单行静态文本时,你应该显式地在构造器中设置控件的尺寸。指定尺寸以防止wxPython 自动调整该控件的尺寸。wxPython 的默认尺寸是刚好包容了文本的矩形尺寸,因此对齐就没有什么必要。要在程序中动态地改变窗口部件中的文本,而不改变该窗口部件的尺寸,就要设置wx.ST_NO_AUTORESIZE 样式。这样就防止了在文本被重置后,窗口部件自动调整尺寸到刚好包容了文本。如果静态文本是位于一个动态的布局中,那么改变它的尺寸可能导致屏幕上其它的窗口部件移动,这就对用户产生了干扰。

代码:

Python

import wx

class StaticTextFrame(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, -1, 'Static Text Example',

size=(400, 300))

panel = wx.Panel(self, -1)

# 这是一个基本的静态文本

wx.StaticText(panel, -1, "This is an example of static text",

(100, 10))

# 指定了前景色和背景色的静态文本

rev = wx.StaticText(panel, -1, "Static Text With Reversed Colors",

(100, 30))

rev.SetForegroundColour('white')

rev.SetBackgroundColour('black')

# 指定居中对齐的的静态文本

center = wx.StaticText(panel, -1, "align center", (100, 50),

(160, -1), wx.ALIGN_CENTER)

center.SetForegroundColour('white')

center.SetBackgroundColour('black')

# 指定右对齐的静态文本

right = wx.StaticText(panel, -1, "align right", (100, 70),

(160, -1), wx.ALIGN_RIGHT)

right.SetForegroundColour('white')

right.SetBackgroundColour('black')

# 指定新字体的静态文本

str = "You can also change the font."

text = wx.StaticText(panel, -1, str, (20, 100))

font = wx.Font(18, wx.DECORATIVE, wx.ITALIC, wx.NORMAL)

text.SetFont(font)

# 显示多行文本

wx.StaticText(panel, -1, "Your text\ncan be split\n"

"over multiple lines\n\neven blank ones", (20, 150))

# 显示对齐的多行文本

wx.StaticText(panel, -1, "Multi-line text\ncan also\n"

"be right aligned\n\neven with a blank", (220, 150),

style=wx.ALIGN_RIGHT)

if __name__ == '__main__':

app = wx.PySimpleApp()

frame = StaticTextFrame()

frame.Show()

app.MainLoop()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

importwx

classStaticTextFrame(wx.Frame):

def__init__(self):

wx.Frame.__init__(self,None,-1,'Static Text Example',

size=(400,300))

panel=wx.Panel(self,-1)

# 这是一个基本的静态文本

wx.StaticText(panel,-1,"This is an example of static text",

(100,10))

# 指定了前景色和背景色的静态文本

rev=wx.StaticText(panel,-1,"Static Text With Reversed Colors",

(100,30))

rev.SetForegroundColour('white')

rev.SetBackgroundColour('black')

# 指定居中对齐的的静态文本

center=wx.StaticText(panel,-1,"align center",(100,50),

(160,-1),wx.ALIGN_CENTER)

center.SetForegroundColour('white')

center.SetBackgroundColour('black')

# 指定右对齐的静态文本

right=wx.StaticText(panel,-1,"align right",(100,70),

(160,-1),wx.ALIGN_RIGHT)

right.SetForegroundColour('white')

right.SetBackgroundColour('black')

# 指定新字体的静态文本

str="You can also change the font."

text=wx.StaticText(panel,-1,str,(20,100))

font=wx.Font(18,wx.DECORATIVE,wx.ITALIC,wx.NORMAL)

text.SetFont(font)

# 显示多行文本

wx.StaticText(panel,-1,"Your text\ncan be split\n"

"over multiple lines\n\neven blank ones",(20,150))

# 显示对齐的多行文本

wx.StaticText(panel,-1,"Multi-line text\ncan also\n"

"be right aligned\n\neven with a blank",(220,150),

style=wx.ALIGN_RIGHT)

if__name__=='__main__':

app=wx.PySimpleApp()

frame=StaticTextFrame()

frame.Show()

app.MainLoop()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值