Lock wx.stc.StyledTextCtrl



我想锁定我的wx.stc.StyledTextCtrl,并且不允许写入它。有人知道一个函数可以做到这一点吗?比如messagetxt。锁定((此外,我想在插入点的地方添加文本,当代码在ReadOnly 中时

import wx
from wx.stc import StyledTextCtrl`
app = wx.App()
frame = wx.Frame(None, -1, title='2', pos=(0, 0), size=(500, 500))
frame.Show(True)
messageTxt = StyledTextCtrl(frame, id=wx.ID_ANY, pos=(0, 0), size=(100 * 3, 100),
style=wx.TE_MULTILINE, name="File")
app.SetTopWindow(frame)
app.MainLoop()

使用SetReadOnly(True)是一种方式,
如:

import wx
from wx.stc import StyledTextCtrl
app = wx.App()
frame = wx.Frame(None, -1, title='2', pos=(0, 0), size=(500, 500))
frame.Show(True)
messageTxt = StyledTextCtrl(frame, id=wx.ID_ANY, pos=(0, 0), size=(100 * 3, 100), style=wx.TE_MULTILINE, name="File")
messageTxt.SetText("This styled text is read only")
messageTxt.SetReadOnly(True)
app.SetTopWindow(frame)
app.MainLoop()

编辑:切换SetReadOnly标志将允许程序而不是用户更改文本
即:

import wx
from wx.stc import StyledTextCtrl
class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="", pos=wx.DefaultPosition, size=(400,500), style=wx.DEFAULT_FRAME_STYLE, name="MyFrame"):
super(MyFrame, self).__init__(parent, id, title, pos, size, style, name)
self.messageTxt = StyledTextCtrl(self, id=wx.ID_ANY, pos=(10,10), size=(300,100), style=wx.TE_MULTILINE)
self.messageTxt.SetText("This styled text is read only")
self.messageTxt.SetReadOnly(True)
self.timer = wx.Timer(self)
self.Bind(wx.EVT_TIMER, self.onTimer, self.timer)
self.timer.StartOnce(5000)

def onTimer(self, event):
print("timer")
self.messageTxt.SetReadOnly(False)
self.messageTxt.AppendText("nThis styled text was briefly read only")
self.messageTxt.AppendText("nNow it's read only again!")
self.messageTxt.SetReadOnly(True)
app = wx.App()
frame = MyFrame(None, title="The Main Frame")
frame.Show(True)
app.MainLoop()

相关内容

  • 没有找到相关文章

最新更新