wxpython之StaticText最全介绍(持续更新)
转载请注明出处,本文作者: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最全介绍(持续更新)相关推荐
- 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)
大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 2020年拼多多校招面试题及答案-最全最新-持续更新中(2) 2020年拼多多校招面试题一面 2020年拼多多校招面试题一面- ...
- 2020年拼多多校招面试题及答案-最全最新-持续更新中
大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员 2020年拼多多校招面试题及答案-最全最新-持续更新中 2020年拼多多校招面试题一面-牛客网 2020年拼多多校招面试题二面- ...
- 操作系统面试题(史上最全、持续更新)
尼恩面试宝典专题40:操作系统面试题(史上最全.持续更新) 本文版本说明:V28 <尼恩面试宝典>升级规划为: 后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取, 发送 ...
- 架构设计面试题 (史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 高并发学习社群 - 疯狂创客圈奉献给大家: 经典图书 - <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 + 涨薪必备 ...
- HR面试题(史上最全、持续更新、吐血推荐)
文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...
- 【论文整理】小样本学习Few-shot learning论文整理收藏(最全,持续更新)
一.综述类 1. Generalizing from a Few Examples: A Survey on Few-Shot Learning 2. Generalizing from a few ...
- ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)
目录 1.ElasticSearch的简介 2.用数据库实现搜素的功能 3.ES的核心概念 3.1 NRT(Near Realtime)近实时 3.2 cluster集群,ES是一个分布式的系统 3. ...
- 2019 CSS经典面试题(史上最全,持续更新中...)
这些是我自己在学习过程中总结的一些知识点,本篇文章我将以面试题的形式分享给大家,希望对大家有所帮助,本文篇幅较长,您若认真看完,并且反复阅读,我相信对您的学习或者是面试,都会有一定帮助,同时希望大家批 ...
- 【MATLAB第6期】基于MATLAB的粒子群及若干改进的粒子群算法原理介绍 持续更新
一.经典粒子群PSO算法 1 思想来源 粒子群优化(Particle Swarm Optimization,PSO) 作为进化计算的一个分支,是由 Eberhart 和 Kennedy 于 1995 ...
最新文章
- linux基本命令之rsync
- 12个球问题--微软面试题
- oss导出数据为空时怎么处理_sql数据库导出空库的搜索结果-阿里云开发者社区...
- Oracle分区表 (二)
- javaweb学习总结(十一):使用Cookie进行会话管理
- 数字化营销的意义所在
- C++中cin,cin.get()和cin.getline()的区别
- word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
- 华为手机相册怎么镜像翻转_怎么制作照片视频?利用手机相册快速制作卡点视频...
- 《从0到1:CTFer成长之路》 配套题目Web WP
- 机器学习笔记-多分类学习,类别不平衡,决策树
- 沙龙干货 Vol.1|如何让游戏广告收益不再艰难?演讲 PPT 免费领取!
- 要么出众,要么出局 定制化让企业更出众
- 与“你”相关,中国移动数据语音与天猫精灵携手打造打造优质智能生活
- LocaSpaceViewer:自定义图源与无偏影像下载
- matlab surf 坐标设置,matlab中3D曲面函数surf的坐标问题
- 使用模拟器玩地下城与勇士M电脑版试玩分享
- 【ArcGIS】属性表导出及乱码问题
- 关于XLL加载项动态加载、卸载的演示及XLL函数自定义类型注册的演示
- RMAN恢复操作-转自Robinson_0612的专栏
热门文章
- 使用谷歌浏览器模拟发送http请求
- Day9 化学方程式配平
- python中re模块及正则匹配
- 按着Phoenix Framework文档练个手,感受一下Elixir语言。
- 业界 | 阿里获杭州首张无人驾驶路测牌照,打造“智能高速公路”
- 为什么服务网页打开需要很久,点击之后计算机在处理什么,为什么我打开电脑桌面全部显示出来后要等很久才能打开连接.doc...
- FPGA控制TDC-GPX2时间间隔测量(一)
- 要点回顾|10 月 Pulsar 中文开发者与用户组会议
- [codeforces 1312A] Two Regular Polygons 整除
- 我们都希望有一部属于自己的电脑。