自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
wx.StaticText类只能够用于显示纯粹的静态文本,但是有时需要输入文本与用户进行交互,此时,就需要使用wx.TextCtrl类,它允许输入单行和多行文本。它也可以作为密码输入控件,掩饰所按下的按键。
wx.TextCtrl类的构造函数语法格式如下:
wx.TextCtrl(parent, id, value = "", pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, validator=wx.DefaultValidator name=wx.TextCtrlNameStr)
参数说明:
l style:单行wx.TextCtrl的样式,取值及说明如下:
Ø wx.TE_CENTER:控件中的文本居中。
Ø wx.TE_LEFT:控件中的文本左对齐。
Ø wx.TE_NOHIDESEL:文本始终高亮显示,只适用于Windows。
Ø wx.TE_PASSWORD:不显示所键入的文本,以星号(*)代替显示。
Ø wx.TE_PROCESS_ENTER:如果使用改参数,那么当用户在控件内按下<Enter>键时,一个文本输入事件将被触发。否则,按键事件由该文本控件或该对话框管理。
Ø wx.TE_PROCESS_TAB:如果指定了这个样式,那么通常的字符事件在按下<Tab>键时创建(一般意味一个制表符将被插入文本)。否则,tab由对话框来管理,通常是控件间的切换。
Ø wx.TE_READONLY:文本控件为只读,用户不能修改其中的文本。
Ø wx.TE_RIGHT:控件中的文本右对齐。
l value:显示在该控件中的初始文本。
l validator:常用于过滤数据以确保只能键入要接受的数据。
实例02 使用wx.TextCtrl实现登录界面
使用wx.TextCtrl类和wx.StaticText类实现一个包含用户名和密码的登录界面。具体代码如下:
# -*- coding:utf-8 -*-
import wx
class MyFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self, parent,id, title="创建TextCtrl类",size=(400, 300))
# 创建面板
panel = wx.Panel(self)
# 创建文本和输入框
self.title = wx.StaticText(panel ,label="请输入用户名和密码",pos=(140,20))
self.label_user = wx.StaticText(panel,label="用户名:",pos=(50,50) )
self.text_user = wx.TextCtrl(panel,pos=(100,50),size=(235,25),style=wx.TE_LEFT)
self.label_pwd = wx.StaticText(panel,pos=(50,90),label="密 码:")
self.text_password = wx.TextCtrl(panel,pos=(100,90),size=(235,25),style=wx.TE_PASSWORD)
if __name__ == '__main__':
app = wx.App() # 初始化应用
frame = MyFrame(parent=None,id=-1) # 实例MyFrame类,并传递参数
frame.Show() # 显示窗口
app.MainLoop() # 调用主循环方法
上述代码中,使用wx.TextCtrl类生成用户名,并且设置控件中的文本左对齐。使用wx.TextCtrl类生成密码,并且设置文本用星号代替。执行效果如图8所示。
图8 生成用户名和密码文本框