我的项目中有这个代码。我想做的是:
我认为这不会起作用,因为我的文本字段已经是只读格式。 有没有办法动态更改样式标志或我能做什么?
换句话说,我怎样才能覆盖只读字段的值?
def trig_dir(e):
self.text.Clear()
dialog = wx.DirDialog(None, "Choose a directory:",style=wx.DD_DEFAULT_STYLE | wx.DD_NEW_DIR_BUTTON)
if dialog.ShowModal() == wx.ID_OK:
global boxstat
boxstat+=dialog.GetPath()
self.text.AppendText(boxstat)
dialog.Destroy()
如果用户改变主意,此功能将再次运行。
答案 0 :(得分:0)
根据docs,wx.TE_READONLY
使TextCtrl中的文字不是用户可编辑的;这 not 禁止在程序中更改文本。考虑一下这个例子:
import wx
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, size=(350,200))
self.text = wx.TextCtrl(self, -1, style=wx.TE_READONLY)
self.btn1 = wx.Button(self, -1, "Right button")
self.btn2 = wx.Button(self, -1, "Wrong button")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.text, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.btn1, 1, wx.ALL | wx.EXPAND, 5)
sizer.Add(self.btn2, 1, wx.ALL | wx.EXPAND, 5)
self.SetSizer(sizer)
self.Fit()
self.Bind(wx.EVT_BUTTON, self.RightButtonPress, self.btn1)
self.Bind(wx.EVT_BUTTON, self.WrongButtonPress, self.btn2)
def RightButtonPress(self, evt):
self.text.AppendText("Right!")
def WrongButtonPress(self, evt):
self.text.Clear()
self.text.AppendText("Press again!")
app = wx.App()
top = Frame("Hello World")
top.Center()
top.Show()
app.MainLoop()