python wxpython 自动生成 textctrl_python - 在TextCtrl中禁用光标-wxPython - 堆栈内存溢出...

我只是碰到这个自己。 我解决了该问题,同时保留了突出显示条目和通过在UI子类中定义内部打印功能来使用滚动条的功能。

import wx,sys

class RedirectText(object):

def __init__(self,wxTextCtrl):

self.out=wxTextCtrl

def write(self,string):

self.out.WriteText(string)

class SomeGUI(wx.Frame):

def __init__(self,parent,title):

super(SomeGUI,self).__init__(parent,title=title)

self.mainsizer=wx.GridBagSizer(2,2)

self.textout=wx.TextCtrl(self,size=(-1,80), style=wx.TE_MULTILINE|wx.TE_READONLY)

self.mainsizer.Add(self.textout,(0,0),span=wx.GBSpan(1,3),flag=wx.EXPAND)

self.redir=RedirectText(self.textout)

sys.stdout=self.redir

self.buttons=[wx.Button(self, label=val) for val in ['Bob Dole', 'Batman', 'Pet Rock']]

for i,v in enumerate(self.buttons):

self.mainsizer.Add(v,(1,i),flag=wx.EXPAND)

self.Bind(wx.EVT_BUTTON,self.BobDole,self.buttons[0])

self.Bind(wx.EVT_BUTTON,self.Batman,self.buttons[1])

self.Bind(wx.EVT_BUTTON,self.Rock,self.buttons[2])

self.SetSizerAndFit(self.mainsizer)

self.Show()

def iprint(self,string): #iprint because "internal print", not because Apple

self.textout.SetInsertionPointEnd()

print(string)

def BobDole(self,e):

self.iprint('Bob Dole!')

def Batman(self,e):

self.iprint('The hero we deserve.')

def Rock(self,e):

self.iprint('It looks happy...')

def main():

app=wx.App()

app.locale=wx.Locale(wx.LANGUAGE_ENGLISH)

somegui=SomeGUI(None, title='It prints text and stuff')

app.MainLoop()

if __name__=='__main__':

main()

从技术上讲,我认为运行时间会比禁用wx.TextCtrl慢一点,但实际上看不到这是一个问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值