wxpython 怎么建立个使输入的字母变为大写文本框

wxpython 怎么建立个使输入的字母变为大写文本框,第1张

wx.EVT_KEY_UP

wx.EVT_KEY_DOWN

通过这两个事件,可以判断用户是否按下键盘,输入字符

他们的区别是:

wx.EVT_KEY_UP是键盘按下后再d起,也就是一次完整的输入,字符被输入到了文本框以后才触发事件。

wx.EVT_KEY_DOWN是键盘按下就触发事件,字符可能还没有输入到文本框里,就被拦截下来。

我试了wx.EVT_KEY_DOWN这个事件,触发事件的时候,按下键盘,抓取用户按下的键值,在输入的字符填到文本框之前,把它转换成大写字符,再填到文本框里,可以做到改变小写为大写。但是有一个问题,就是输入特殊字符的时候,比如shift+2,应该是@,但是抓取到的是2,这样不太好。

所以尝试另外一种方式:首先输入一个字符到文本框里,触发wx.EVT_KEY_UP事件,然后获取文本框里刚刚输入的这个字符,如果是小写字母,就转换成大写的,如果是其他字符,则不做处理。

虽然这个方法不是很简便,但是能达到效果。

下面是代码,调试过没问题:

import wx

import time

def lower_to_upper(event):

      end_pos = text_box.GetInsertionPoint()#获取插入点的位置

      if end_pos <=0 :return#插入点为0代表是文本框的起始位置

      start_pos = end_pos -1#插入点前一个位置

   

      text_box.SetSelection(start_pos,end_pos)#选取刚输入的字符

      char_value=text_box.GetStringSelection()#获取字符的值

      if 97<=ord(char_value)<=122:#小写字母的ascii 码范围是97到122

          upper_case = char_value.upper()#转换成大写

          text_box.Remove(start_pos,end_pos)#删除小写字母

          time.sleep(.5)#等待0.5秒,为的是能看到删除的动作,可以删掉这一行

          text_box.WriteText(upper_case)#填入大写字母

      else:

          text_box.SetInsertionPoint(end_pos)#如果是其他字符,直接设置插入点,等待输入

app = wx.App()

win = wx.Frame(None,title = "Test",size = (200,200))

win.SetBackgroundColour(wx.BLACK)

win.Show()

text_box = wx.TextCtrl(win,pos = (0,0))

text_box.Bind(wx.EVT_KEY_UP,lower_to_upper) #文本框绑定事件,调用相应的函数

app.MainLoop()

复制代码即可运行,截图如下:

希望能帮到你,有疑问请追问!

开发环境简介:python版本我们使用3.5, *** 作系统win7,

要使用的模块:

1.wxpython桌面图形扩展。安装方法使用pip安装命令:pipinstall-UwxPython

2、请求,re,hashlib,时间

让我们开始吧:

第一步是创建具有以下效果的界面:

创建接口的代码:

App = wx.app () win = wx.frame(无,title = "(在此填写软件标题)"。编码(' utf8 '),大小= (1200,800)) # size是默认窗口大小,赢了。Show()可以根据您自己的需要进行设置

#添加两个文本框,位置和大小可以自己设置。这里我使用左右设计内容1 = WX.textctrl (Win,POS = (5,5),size = (500,600),style = WX . te _ multiline | WX . te _ rich)内容2 = WX.textctrl (Win,pos=(650,5),size=(500,600),style = WX。TE_MULTILINE|wx。TE_RICH)

# add function button load button = wx . button(赢,标签= '这是按钮的标题,请更改'。编码(“utf8”),pos = (515,310),size = (120,40))

#为按钮添加绑定事件,单击按钮执行wyc函数加载按钮。绑定(WX。EVT按钮)。步骤2,定义WYC()函数的代码截图如下:

第三步:实现内容1的伪原创。这里我使用百度翻译的api界面。

界面键需要你自己应用,当然你也可以用我的。

Appid = 20160727000025884姚蜜= ' tznuzfwt 8qzv10dzuttc ' #百度翻译密钥

代码截图:

第四步:调用百度翻译界面将原文内容翻译成中文(以增强伪原文效果),然后将返回的内容再次调整到词典段落,代码如下

步骤5:包装。将文件复制到exe。

这里我使用的是pyinstaller,一个可以直接使用pip安装的工具

然后切换到。找到py文件,并执行打包命令:pyinstaller-F-wxxx.py(注意:添加参数-w,运行打包的exe文件后不会出现黑色窗口)

包完成后,可以在当前目录下的dist文件夹中看到生成的exe文件,并且它已经完成。

*** 作效果如下:

生命太短暂,无法学习。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11672999.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存