1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import wx
import sys, traceback
class TextScroll(wx.TextCtrl):
def __init__(self, parent):
self.parent = parent
wx.TextCtrl.__init__(self, parent, style=wx.TE_MULTILINE|wx.TE_RICH|wx.TE_READONLY|wx.TE_NOHIDESEL|wx.HSCROLL|wx.TE_NO_VSCROLL)
self.ScrollBar = wx.ScrollBar(parent,-1,style=wx.VERTICAL)
self.Box = wx.BoxSizer(wx.HORIZONTAL)
self.Box.Add(self, 1, wx.EXPAND)
self.Box.Add(self.ScrollBar,0,wx.RIGHT|wx.EXPAND)
parent.SetSizer(self.Box)
class FrameScrollFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title)
panel = wx.Panel(self)
panel.SetBackgroundColour("red")
#'''
# version sans panel
log_tc = TextScroll(panel)
Box = wx.BoxSizer(wx.HORIZONTAL)
txt1 = wx.StaticText(panel, label = "test")
Box.Add(txt1, 0, wx.CENTER, 5)
Box.Add(log_tc, 1, wx.EXPAND)
txt2 = wx.StaticText(panel, label = "test")
Box.Add(txt2, 0, wx.CENTER, 5)
panel.SetSizer(Box)
'''
# version avec panel
panel2 = wx.Panel(panel)
panel2.SetBackgroundColour("blue")
log_tc = TextScroll(panel2)
Box = wx.BoxSizer(wx.HORIZONTAL)
txt1 = wx.StaticText(panel, label = "test")
Box.Add(txt1, 0, wx.CENTER, 5)
Box.Add(panel2, 1, wx.EXPAND)
txt2 = wx.StaticText(panel, label = "test")
Box.Add(txt2, 0, wx.CENTER, 5)
panel.SetSizer(Box)
'''
self.SetSize((600,500))
for i in range(10):
log_tc.AppendText("toto%s\r\n"%(i+1))
self.Show()
if __name__ == '__main__':
try:
app = wx.PySimpleApp(redirect=True)
frm = FrameScrollFrame(None, "text scroll")
app.SetTopWindow(frm)
app.MainLoop()
except:
traceback.print_exc (file=open('error_scrolltext.txt', 'w')) |
Partager