Dotcpp  >  编程教程  >  PythonGUI编程  >  wxPython模块(2)-文本控件

wxPython模块(2)-文本控件

点击打开在线编译器,边学边练

wxPython中的控件全部继承与wx.Control,包含了静态文本、文本输入控件、按钮、列表、滑块、滚动条、复选框等,本节我们来学习一下静态文本和文本输入控件。

1. 静态文本

静态文本就是在上屏幕显示的静态文字,我们使用的是wx.StaticText类来完成,它的语法格式为:

wx.StaticText(parent,id,label=’’,pos=wx.DefaultPositon,size=wx.DefaultSize,style=’’,name=’’)

label为显示在控件中的文本信息,其余的我们在前面都学习过就不再作解释。

其中样式style的取值有:

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

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

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

wx.ST_NO_AUTORESIZE:如果使用了这个样式,那么在使用了SetLabel()改变文本之后,静态文本控件不将自我调整尺寸。

我们来使用这种方式来输出一首诗,代码如下:

import wx
class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,"静态文本", size =(200, 170))
        panel = wx.Panel(self, -1)
        wx.StaticText(panel, wx.ID_ANY, "春夜喜雨 ——杜甫。", (0, 10),(145, -1),wx.ALIGN_RIGHT)
        text = wx.StaticText(panel, wx.ID_ANY, "好雨知时节,当春乃发生。", (0, 30),(160, -1),wx.ALIGN_RIGHT)
        text = wx.StaticText(panel, wx.ID_ANY, "随风潜入夜,润物细无声。", (0,50), (160, -1),wx.ALIGN_RIGHT)
        text =wx.StaticText(panel, wx.ID_ANY, "野径云俱黑,江船火独明。", (0,70),(160, -1),wx.ALIGN_RIGHT)
        text =wx.StaticText(panel, wx.ID_ANY, "晓看红湿处,花重锦官城。", (0,90),(160, -1),wx.ALIGN_RIGHT)
if __name__ == '__main__':
    app = wx.App()
    frame = Frame()
    frame.Show(True)
    app.MainLoop()

输出结果为:

wxpython4

注意我们在使用的时候首先要用wx.Panel方式来创建一个容器,类似于Tkinter中的Frame容器,然后我们在这个容器里放置一些组件。

我们还可以对文字信息进行修饰,使用wx.Font方法,它的语法结构如下:

wx.Font(pointSize,fimily,style,weight,underline=True,faceName=’’,encoding=wx.FONTENCODING_DEFAULT)

pointSize为字体的尺寸,family为字体的名字,style来判定倾斜,weight为宽度,underline为下划线,True有,False为无,faceName为此方法的字体名,encoding为编码方式。

2. 文本输入控件

我们在与程序交互的时候,静态文字是无法获取我们输入的信息,因此我们引入wx.TextCtrl类来获取用户输入的文本内容,它的语法结构为:

wx.TextCtrl(parent,id,value=’’,pos=wx.DefaultPositon,size=wx.DefaultSize,style,validator=wx.DefaultVali
dator,name=’’)

除了validator为过滤数据外其余的我们在前面都提到过,style在这里功能有所增添,我们介绍再介绍一下。

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:控件中的文本右对齐。

我们使用wx.TextCtrl来实现一个登陆界面。

代码如下:

import wx
class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, wx.ID_ANY,"登陆", size =(300, 300))
        panel = wx.Panel(self, -1)
        wx.StaticText(panel, wx.ID_ANY, "登录界面", (0, 10),(150, -1),wx.ALIGN_RIGHT)
        text = wx.StaticText(panel, wx.ID_ANY, "账户", (0, 50),(80, -1),wx.ALIGN_RIGHT)
        text = wx.StaticText(panel, wx.ID_ANY, "密码", (0, 90),(80, -1),wx.ALIGN_RIGHT)
        text = wx.TextCtrl(panel, wx.ID_ANY, "", (100,50),(100, 20),wx.ALIGN_LEFT)
        text = wx.TextCtrl(panel, wx.ID_ANY, "", (100,90),(100, 20),wx.ALIGN_LEFT)
if __name__ == '__main__':
    app = wx.App()
    frame = Frame()
    frame.Show(True)
    app.MainLoop()

运行结果如图:

wxpython5



本文固定URL:https://www.dotcpp.com/course/292

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Python教程
第一章 Python入门
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 Python函数
第六章 Python面向对象编程
第七章 Python模块
第八章 Python异常处理和程序调试
第九章 Python文件及目录操作
第十章 PythonGUI编程
第十一章 Python进程和线程
第十二章 Python数据库管理
第十三章 Python算法
第十四章 Python爬虫
第十五章 Python实战项目
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)