锁定wx.stc.StyledTextCtrl

我想锁定wx.stc.styledtextCtrl并不允许写入。有人知道可以做到这一点的功能吗?类似于messagetxt.Lock() 另外,我想在代码位于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,size=(100 * 3,100),style=wx.TE_MULTILINE,name="File")
app.SetTopWindow(frame)
app.MainLoop()
zhao_xunze 回答:锁定wx.stc.StyledTextCtrl

使用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,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,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,pos=(10,10),size=(300,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()
本文链接:https://www.f2er.com/3071509.html

大家都在问