问题描述
我注意到,如果您在 Windows 7 中为 TextCtrl 设置了提示,那么小部件在某些视觉效果设置下的行为会不正确。
如果系统禁用了视觉效果,并且为widget设置了提示,那么在输入文本后,GetValue方法总是返回一个空字符串。
示例:
import wx
class Frame(wx.Frame):
def __init__(self):
super().__init__(None)
Box = wx.BoxSizer(wx.VERTICAL)
Box.Add(wx.StaticText(self,label='textCtrl'),wx.ALL,5)
textCtrl = wx.TextCtrl(self,size=(300,-1),style=wx.TE_CENTRE,name='textCtrl')
Box.Add(textCtrl,5)
textCtrl.Bind(wx.EVT_TEXT,self.OnTextChanged)
Box.Add(wx.StaticText(self,label='textCtrlHint'),5)
textCtrlHint = wx.TextCtrl(self,name='textCtrlHint')
Box.Add(textCtrlHint,5)
textCtrlHint.SetHint('HINT')
textCtrlHint.Bind(wx.EVT_TEXT,self.OnTextChanged)
self.SetSizer(Box)
def OnTextChanged(self,event):
textCtrl = event.GetEventObject()
print(f'{textCtrl.GetName()} value:',repr(textCtrl.GetValue()))
app = wx.App()
Frame().Show()
app.MainLoop()
视觉效果设置和程序输出(我依次在每个字段中输入文本“Text”):
禁用“在窗口和按钮上使用视觉样式”标志时不起作用。
可能是什么问题?能解决吗?
系统参数:
- Windows 7 x32 (VirtualBox)
- Python 3.7.9
- wxPython 4.0.7.post2
P.S.:在 Windows 10 上一切正常。 P.P.S.:它在 wxPython 4.1.1 中正常工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)