gpt4 book ai didi

python - 如何让 wxpython 密码 textctrl 显示字符?

转载 作者:太空狗 更新时间:2023-10-30 02:33:58 24 4
gpt4 key购买 nike

使用 wxPython 可以创建一个密码字段:

wx.TextCtrl(frm, -1, '', style=wx.TE_PASSWORD )

我想知道是否有办法将此密码字段动态更改为普通的 textctrl,以便用户可以看到密码是什么。

最佳答案

创建控件后无法更改样式标志。

您可以销毁控件并创建一个没有密码标志的新控件,或者在 sizer 中同时保留两个控件,其中一个始终隐藏。当你想切换时,你可以将文本复制到另一个文本控件中,隐藏一个并显示另一个,然后在 sizer 上调用 Layout。

import wx

class Frame(wx.Frame):
def __init__(self,*args,**kwargs):
wx.Frame.__init__(self,*args,**kwargs)
panel= wx.Panel(self)
self.password_shown= False

sizer= wx.BoxSizer(wx.VERTICAL)
self.password_sizer= wx.BoxSizer(wx.HORIZONTAL)
self.text_password= wx.TextCtrl(panel,style=wx.TE_PASSWORD)
self.password_sizer.Add(self.text_password,0,wx.ALL,5)
self.text_no_password= wx.TextCtrl(panel)
self.text_no_password.Hide()
self.password_sizer.Add(self.text_no_password,0,wx.ALL,5)
sizer.Add(self.password_sizer)
self.button= wx.Button(panel,-1,"Toggle Password")
sizer.Add(self.button,0,wx.ALL,5)
self.button.Bind(wx.EVT_BUTTON,self.OnButton)
panel.SetSizer(sizer)

self.Show()

def OnButton(self,event):
self.text_password.Show(self.password_shown)
self.text_no_password.Show(not self.password_shown)
if not self.password_shown:
self.text_no_password.SetValue(self.text_password.GetValue())
self.text_no_password.SetFocus()
else:
self.text_password.SetValue(self.text_no_password.GetValue())
self.text_password.SetFocus()
self.text_password.GetParent().Layout()
self.password_shown= not self.password_shown


if __name__ == "__main__":
app= wx.App(0)
Frame(None)
app.MainLoop()

关于python - 如何让 wxpython 密码 textctrl 显示字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com