[python]求助,请问如何修改文本只读模式??

syhhl123 2013-06-10 06:25:02
意图是想通过快捷键实现文档的只读模式和可写模式切换。但是OnImode函数里无法实现切换到只读模式。请问该怎么修改啊????


isertmode = wx.AcceleratorTable([(wx.ACCEL_CTRL,ord('I'), self.emodeM.GetId())])
self.SetAcceleratorTable(isertmode)
self.Show(True)
。。。
self.Bind(wx.EVT_MENU, self.OnImode, self.emodeM) #菜单绑定
。。。
def OnImode(self,event):
self.control = wx.TextCtrl(self,style=wx.TE_MULTILINE|wx.TE_LINEWRAP|wx.TE_READONLY)
...全文
530 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
syhhl123 2013-06-10
  • 打赏
  • 举报
回复
真是高手啊。的确有效的。谢谢。 关于SetEditable 的描述: Makes the text item editable or read-only, overriding the TE_READONLY flag. 既然setEditable和TE_READONLY是一个意思,为什么我上面的代码用TE_READONLY就实现不了呢?
angel_su 2013-06-10
  • 打赏
  • 举报
回复
import wx

class TestFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None)
        self.contol = wx.TextCtrl(self, style=wx.TE_MULTILINE)
        self.contol.LoadFile(__file__)
        
        menubar = wx.MenuBar()
        menu = wx.Menu()
        menu.Append(101, 'Read Only\tCtrl+I', kind=wx.ITEM_CHECK)
        menubar.Append(menu, '&Options')
        self.SetMenuBar(menubar)
        
        self.Bind(wx.EVT_MENU, self.OnImode, id=101)
        
    def OnImode(self, event):
        self.contol.SetEditable(not event.IsChecked())
        
app = wx.App(False)
frame = TestFrame()
frame.Show()
app.MainLoop()
syhhl123 2013-06-10
  • 打赏
  • 举报
回复
能讲详细点吗?我开始是想用wx.TE_READONLY来实现,但发现好像切换不过去。
syhhl123 2013-06-10
  • 打赏
  • 举报
回复
给分给分,多谢
angel_su 2013-06-10
  • 打赏
  • 举报
回复
你的代码是生成一个新的textctrl控件,同原来的没半毛关系...

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧