转载请注明出处,本文作者:TEER,邮箱:TEER123@qq.com

本文是作者学习wxpython过程中的随笔,主要是StaticText的相关操作,本文会持续更新。

目录

一、各个部分代码介绍

1、StaticText的建立

2、StaticText文本字体大小、颜色、风格、斜体、字体背景颜色等操作

3、如何获得并且更改StaticText的文字内容,如何获得StaticText的大小以及位置

4、如何实现StaticText文本的透明

5、StaticText文本的多行显示

6、如何实现鼠标进入或者离开StaticText文本的显示

7、如何实现鼠标单击StaticText文本的显示

二、总的函数以及界面展示

1、界面展示:

2、代码:


一、各个部分代码介绍

1、StaticText的建立

调用格式:Wx.StaticText(parent, id, label, position, size, style)

parent(wx.Window)–父窗口。不应该None。也就是,在什么地方显示

id(wx.WindowID)–控件标识符,值-1表示默认值。

label(字符串)–文本标签,也就是显示的内容。

pos(wx.Point)–窗口位置。

size(wx.Size)–窗口大小。

style(long)–窗口样式。

其中style格式有:

wx.ALIGN_LEFT 文本向左对齐 文本的一个对齐操作
wx.ALIGN_RIGHT 文本向右对齐
wx.ALIGN_CENTRE_HORIZONTAL 文本居中(水平)
wx.ST_NO_AUTORESIZE 使用后不能自动调整大小  
wx.ST_ELLIPSIZE_START 省略号在开头显示 如果标签文本的宽度超过控件的宽度,多余文本的省略号在哪显示
wx.ST_ELLIPSIZE_MIDDLE 省略号在中间显示
wx.ST_ELLIPSIZE_END

省略号在结尾显示

代码部分:

        #最简单的调用wx.StaticText(panel, -1, '简单的调用', (10,10))#常规调用操作custom = wx.StaticText(panel, -1, '普通格式,可自动调整大小',  pos=(10, 30), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL)custom2 = wx.StaticText(panel, -1, '普通格式,不可自动调整大小', pos=(10, 50), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL|wx.ST_NO_AUTORESIZE)

2、StaticText文本字体大小、颜色、风格、斜体、字体背景颜色等操作

函数操作:

SetFont(wx.Font)

设置字体

SetForegroundColour(color)

设置字体颜色

SetBackgroundColour(color)

设置字体的背景颜色

字体相关的调用格式:Wx.Font(pointsize, fontfamily, fontstyle, fontweight)

pointsize:指文字大小,比如:12、14这些数

fontfamily:选择哪一种字体

1

wx.FONTFAMILY_DEFAULT

选择默认字体

2

wx.FONTFAMILY_DECORATIVE

选择装饰字体

3

wx.FONTFAMILY_ROMAN

选择正式的衬线字体

4

wx.FONTFAMILY_SCRIPT

选择手写字体

5

wx.FONTFAMILY_SWISS

选择sans-serif字体

6

wx.FONTFAMILY_MODERN

选择固定间距字体

7

wx.FONTFAMILY_TELETYPE

选择电传打字机(等宽字体)

fontstyle:字体是不是倾斜

1

Wx.FONTSTYLE_NORMAL

字体绘制没有倾斜

2

wx.FONTSTYLE_ITALIC

字体以斜体样式倾斜

3

wx.FONTSTYLE_SLANT

字体是倾斜的,但是罗马风格

fontweight:字体是不是加粗

1

Wx.FONTWEIGHT_NORMAL

普通字体

2

wx.FONTWEIGHT_LIGHT

轻字体

3

wx.FONTWEIGHT_BOLD

粗体

代码部分:

        custom = wx.StaticText(panel, -1, '普通格式,可自动调整大小',  pos=(10, 30), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL)custom2 = wx.StaticText(panel, -1, '普通格式,不可自动调整大小', pos=(10, 50), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL|wx.ST_NO_AUTORESIZE)#这里可以设置静态文本的格式,包括字体大小,颜色,背景,倾斜,粗体等等属性#Wx.Font(pointsize, fontfamily, fontstyle, fontweight)custom.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))#custom.SetForegroundColour((255, 0, 0))#设置文字颜色custom.SetForegroundColour('red')#red或者(255,0,0)都可以用来设置颜色custom.SetBackgroundColour('blue')#设置背景颜色custom2.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))custom2.SetBackgroundColour('red')

3、如何获得并且更改StaticText的文字内容,如何获得StaticText的大小以及位置

用SetLabel()与GetLabel()函数可以实现替换和获得,或者直接使用StaticText.Label便可以得到文本内容,StaticText.Label=“”便可以实现替换文本的内容。

代码:

        #SetLabel可以设置更改文本的内容StaticText1=wx.StaticText(panel, -1, '我是原来的内容', (10, 70))StaticText1.SetLabel("我是更改之后的")StaticText1.Label = "我是更改之后的"#这种方式也可以更改静态文本内容#得到静态文本的内容print(StaticText1.GetLabel())print(StaticText1.Label)#另外一种方式

4、如何实现StaticText文本的透明

参考网络上其他人的博客介绍:https://blog.csdn.net/zy0412326/article/details/102928274

自己新建一个类,然后调用这个TransparentStaticText和调用StaticText这个类一样。

新建的类:

####这个类是用来实现透明控件的
class TransparentStaticText(wx.StaticText):def __init__(self, parent, id=wx.ID_ANY, label='', pos=wx.DefaultPosition, size=wx.DefaultSize,style=wx.TRANSPARENT_WINDOW, name='TransparentStaticText'):wx.StaticText.__init__(self, parent, id, label, pos, size, style, name)self.Bind(wx.EVT_PAINT, self.OnPaint)self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)self.Bind(wx.EVT_SIZE, self.OnSize)def OnPaint(self, event):bdc = wx.PaintDC(self)dc = wx.GCDC(bdc)font_face = self.GetFont()font_color = self.GetForegroundColour()dc.SetFont(font_face)dc.SetTextForeground(font_color)dc.DrawText(self.GetLabel(), 0, 0)def OnSize(self, event):self.Refresh()event.Skip()

5、StaticText文本的多行显示

python中可以借助/n实现换行操作

        #\n可以用来静态文本换行,并且默认是自动调整文本的大小StaticText2=wx.StaticText(panel, -1, '第一行我很长的\n第二行\n第三行', (10, 90))StaticText2.SetForegroundColour((255, 0, 0))StaticText2.SetBackgroundColour('yellow')  # 设置背景颜色

6、如何实现鼠标进入或者离开StaticText文本的显示

主要是利用wx.EVT_LEAVE_WINDOW、wx.EVT_ENTER_WINDOW两个事件进行判断。

        #这里是实现静态文本与鼠标交互的操作StaticText4=wx.StaticText(panel, -1, '鼠标请进入我', (10, 170))StaticText4.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.NORMAL))StaticText4.SetBackgroundColour('pink')#进入和离开控件函数的绑定StaticText4.Bind(wx.EVT_LEAVE_WINDOW, self.Leave_Text)StaticText4.Bind(wx.EVT_ENTER_WINDOW, self.Enter_Text)#进入静态文本控件的函数处理def Enter_Text(self,event):print("已经进入:"+event.GetEventObject().GetLabel())print(event.GetEventObject().GetPosition())#得到这个控件的位置print(event.GetEventObject().GetSize())#得到这个控件的大小event.GetEventObject().Label="鼠标请离开我"# 离开静态文本控件的函数处理def Leave_Text(self,event):print("已经离开:"+event.GetEventObject().GetLabel())print(event.GetEventObject().GetPosition())#得到这个控件的位置print(event.GetEventObject().GetSize())#得到这个控件的大小event.GetEventObject().Label="鼠标请进入我"

7、如何实现鼠标单击StaticText文本的显示

主要是利用wx.EVT_LEFT_DOWN进行判断。

        #这里是实现静态文本与鼠标交互的操作StaticText4=wx.StaticText(panel, -1, '鼠标请进入我', (10, 170))StaticText4.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.NORMAL))StaticText4.SetBackgroundColour('pink')#鼠标单击控件StaticText4.Bind(wx.EVT_LEFT_DOWN, self.Click_Text)#进入静态文本控件的函数处理def Click_Text(self,event):print("正在左键单击单击:"+event.GetEventObject().GetLabel())

二、总的函数以及界面展示

1、界面展示:

2、代码:

'''
author:TEER
time:2020/5/12
'''
import wx####这个类是用来实现透明控件的
class TransparentStaticText(wx.StaticText):def __init__(self, parent, id=wx.ID_ANY, label='', pos=wx.DefaultPosition, size=wx.DefaultSize,style=wx.TRANSPARENT_WINDOW, name='TransparentStaticText'):wx.StaticText.__init__(self, parent, id, label, pos, size, style, name)self.Bind(wx.EVT_PAINT, self.OnPaint)self.Bind(wx.EVT_ERASE_BACKGROUND, lambda event: None)self.Bind(wx.EVT_SIZE, self.OnSize)def OnPaint(self, event):bdc = wx.PaintDC(self)dc = wx.GCDC(bdc)font_face = self.GetFont()font_color = self.GetForegroundColour()dc.SetFont(font_face)dc.SetTextForeground(font_color)dc.DrawText(self.GetLabel(), 0, 0)def OnSize(self, event):self.Refresh()event.Skip()class MyFrame(wx.Frame):def __init__(self, *args, **kw):super().__init__(*args, **kw)self.Center(True)       #屏幕居中显示panel = wx.Panel(self)#调用格式  Wx.StaticText(parent, id, label, position, size, style)#parent(wx.Window)–父窗口。不应该None。id(wx.WindowID)–控件标识符,值-1表示默认值。# label(字符串)–文本标签,也就是显示的内容。#pos(wx.Point)–窗口位置。size(wx.Size)–窗口大小。style(long)–窗口样式。参见 wx.StaticText。#最简单的调用wx.StaticText(panel, -1, '简单的调用', (10,10))#style格式:# wx.ALIGN_LEFT:将文本向左对齐。# wx.ALIGN_RIGHT:将文本向右对齐。# wx.ALIGN_CENTRE_HORIZONTAL:将文本居中(水平)。# wx.ST_NO_AUTORESIZE:默认情况下,控件将调整其大小以使其完全适合SetLabel被调用时文本的大小,此功能是不调整custom = wx.StaticText(panel, -1, '普通格式,可自动调整大小',  pos=(10, 30), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL)custom2 = wx.StaticText(panel, -1, '普通格式,不可自动调整大小', pos=(10, 50), size=(160, -1), style=wx.ALIGN_CENTRE_HORIZONTAL|wx.ST_NO_AUTORESIZE)#这里可以设置静态文本的格式,包括字体大小,颜色,背景,倾斜,粗体等等属性#Wx.Font(pointsize, fontfamily, fontstyle, fontweight)custom.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))#custom.SetForegroundColour((255, 0, 0))#设置文字颜色custom.SetForegroundColour('red')#red或者(255,0,0)都可以用来设置颜色custom.SetBackgroundColour('blue')#设置背景颜色custom2.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))custom2.SetBackgroundColour('red')#SetLabel可以设置更改文本的内容StaticText1=wx.StaticText(panel, -1, '我是原来的内容', (10, 70))StaticText1.SetLabel("我是更改之后的")StaticText1.Label = "我是更改之后的"#这种方式也可以更改静态文本内容#得到静态文本的内容print(StaticText1.GetLabel())print(StaticText1.Label)#另外一种方式#\n可以用来静态文本换行,并且默认是自动调整文本的大小StaticText2=wx.StaticText(panel, -1, '第一行我很长的\n第二行\n第三行', (10, 90))StaticText2.SetForegroundColour((255, 0, 0))StaticText2.SetBackgroundColour('yellow')  # 设置背景颜色#这里是透明的静态文本框实现,设置背景颜色就没用,这个在有北京图片调用比较好StaticText3=TransparentStaticText(panel, -1, '我是透明的', (10, 150))StaticText3.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL))StaticText3.SetBackgroundColour('red')#StaticText3.Label="我是可以更改后的内容"#直接采用此方法可以更改透明文本框的内容#这里是实现静态文本与鼠标交互的操作StaticText4=wx.StaticText(panel, -1, '鼠标请进入我', (10, 170))StaticText4.SetFont(wx.Font(18, wx.SWISS, wx.NORMAL, wx.NORMAL))StaticText4.SetBackgroundColour('pink')#进入和离开控件函数的绑定StaticText4.Bind(wx.EVT_LEAVE_WINDOW, self.Leave_Text)StaticText4.Bind(wx.EVT_ENTER_WINDOW, self.Enter_Text)#鼠标单击控件StaticText4.Bind(wx.EVT_LEFT_DOWN, self.Click_Text)#进入静态文本控件的函数处理def Click_Text(self,event):print("正在左键单击单击:"+event.GetEventObject().GetLabel())#进入静态文本控件的函数处理def Enter_Text(self,event):print("已经进入:"+event.GetEventObject().GetLabel())print(event.GetEventObject().GetPosition())#得到这个控件的位置print(event.GetEventObject().GetSize())#得到这个控件的大小event.GetEventObject().Label="鼠标请离开我"# 离开静态文本控件的函数处理def Leave_Text(self,event):print("已经离开:"+event.GetEventObject().GetLabel())print(event.GetEventObject().GetPosition())#得到这个控件的位置print(event.GetEventObject().GetSize())#得到这个控件的大小event.GetEventObject().Label="鼠标请进入我"app = wx.App()
#设置窗口不可以由用户改变
style=wx.DEFAULT_FRAME_STYLE^wx.MAXIMIZE_BOX^wx.RESIZE_BORDER^wx.MINIMIZE_BOX
frame = MyFrame(None,title="StaticText例程",style=style,size=(700,550))
frame.Show()
app.MainLoop()#透明静态文本参考链接:https://blog.csdn.net/zy0412326/article/details/102928274
#文本框格式参考链接:http://codingdict.com/article/9441

wxpython之StaticText最全介绍(持续更新)相关推荐

  1. 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 2020年拼多多校招面试题及答案-最全最新-持续更新中(2) 2020年拼多多校招面试题一面 2020年拼多多校招面试题一面- ...

  2. 2020年拼多多校招面试题及答案-最全最新-持续更新中

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员 2020年拼多多校招面试题及答案-最全最新-持续更新中 2020年拼多多校招面试题一面-牛客网 2020年拼多多校招面试题二面- ...

  3. 操作系统面试题(史上最全、持续更新)

    尼恩面试宝典专题40:操作系统面试题(史上最全.持续更新) 本文版本说明:V28 <尼恩面试宝典>升级规划为: 后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取, 发送 ...

  4. 架构设计面试题 (史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 高并发学习社群 - 疯狂创客圈奉献给大家: 经典图书 - <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 ...

  5. HR面试题(史上最全、持续更新、吐血推荐)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  6. 【论文整理】小样本学习Few-shot learning论文整理收藏(最全,持续更新)

    一.综述类 1. Generalizing from a Few Examples: A Survey on Few-Shot Learning 2. Generalizing from a few ...

  7. ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)

    目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群,ES是一个分布式的系统 3. ...

  8. 2019 CSS经典面试题(史上最全,持续更新中...)

    这些是我自己在学习过程中总结的一些知识点,本篇文章我将以面试题的形式分享给大家,希望对大家有所帮助,本文篇幅较长,您若认真看完,并且反复阅读,我相信对您的学习或者是面试,都会有一定帮助,同时希望大家批 ...

  9. 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新

    一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...

最新文章

  1. linux基本命令之rsync
  2. 12个球问题--微软面试题
  3. oss导出数据为空时怎么处理_sql数据库导出空库的搜索结果-阿里云开发者社区...
  4. Oracle分区表 (二)
  5. javaweb学习总结(十一):使用Cookie进行会话管理
  6. 数字化营销的意义所在
  7. C++中cin,cin.get()和cin.getline()的区别
  8. word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
  9. 华为手机相册怎么镜像翻转_怎么制作照片视频?利用手机相册快速制作卡点视频...
  10. 《从0到1:CTFer成长之路》 配套题目Web WP
  11. 机器学习笔记-多分类学习,类别不平衡,决策树
  12. 沙龙干货 Vol.1|如何让游戏广告收益不再艰难?演讲 PPT 免费领取!
  13. 要么出众,要么出局 定制化让企业更出众
  14. 与“你”相关,中国移动数据语音与天猫精灵携手打造打造优质智能生活
  15. LocaSpaceViewer:自定义图源与无偏影像下载
  16. matlab surf 坐标设置,matlab中3D曲面函数surf的坐标问题
  17. 使用模拟器玩地下城与勇士M电脑版试玩分享
  18. 【ArcGIS】属性表导出及乱码问题
  19. 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示
  20. RMAN恢复操作-转自Robinson_0612的专栏

热门文章

  1. 使用谷歌浏览器模拟发送http请求
  2. Day9 化学方程式配平
  3. python中re模块及正则匹配
  4. 按着Phoenix Framework文档练个手,感受一下Elixir语言。
  5. 业界 | 阿里获杭州首张无人驾驶路测牌照,打造“智能高速公路”
  6. 为什么服务网页打开需要很久,点击之后计算机在处理什么,为什么我打开电脑桌面全部显示出来后要等很久才能打开连接.doc...
  7. FPGA控制TDC-GPX2时间间隔测量(一)
  8. 要点回顾|10 月 Pulsar 中文开发者与用户组会议
  9. [codeforces 1312A] Two Regular Polygons 整除
  10. 我们都希望有一部属于自己的电脑。