<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.2900.3059" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Ok, takže nakonec mi s tím poradili na DaniWebu,
ale mám další problém. Toto je kod:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>##do vstupu se zadavaji 4 cisla jako souradnice
cary...<BR>class Canvas:<BR> def
__init__(self,parent):<BR>
self.okno=parent<BR>
self.okno.SetBackgroundColour("#FCFCFE")<BR>
self.radic =
wx.FlexGridSizer(2,2,0,0)<BR>
self.canvas = wx.ScrolledWindow(self.okno,
-1)<BR>
<BR> self.canvas.EnableScrolling(True,
True)<BR>
<BR>
<BR> self.P_WIDTH =
1000<BR> self.P_HEIGHT =
1000<BR> self.canvas.SetScrollbars(20,
20, self.P_WIDTH/20, self.P_HEIGHT/20)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>
self.radic.Add(self.canvas, 1,
wx.EXPAND)<BR>
self.radic.Add((0,0))<BR>
sizer=wx.BoxSizer(wx.VERTICAL)<BR>
self.radic.Add(sizer, 1,
wx.EXPAND)<BR>
self.radic.Add((0,0))<BR>
self.radic.AddGrowableRow(0, 1)<BR>
self.radic.AddGrowableCol(0, 1)<BR>
sizer2=wx.BoxSizer(wx.HORIZONTAL)<BR>
sizer2.Add(wx.StaticText(self.okno,label=" f(y)=
"),0,wx.ALIGN_CENTER)<BR>
self.vstup=wx.TextCtrl(self.okno)<BR>
sizer2.Add(self.vstup,1,0,wx.ALL)<BR>
sizer.Add(sizer2,0,wx.EXPAND)<BR>
sizer3=wx.BoxSizer(wx.HORIZONTAL)<BR>
button1=wx.Button(self.okno,label="Vykresli")<BR>
sizer3.Add(button1,0,wx.ALIGN_RIGHT)<BR>
sizer.Add(sizer3,0,wx.EXPAND)<BR>
##<BR>
self.canvas.SetCursor(wx.CROSS_CURSOR)<BR>
self.canvas.Bind(wx.EVT_PAINT,
self.OnPaint)<BR>
self.okno.SetSizer(self.radic)<BR>
button1.Bind(wx.EVT_BUTTON,lambda
e:self.vykresli())<BR>
self.body=[(0,0,0,0)]<BR>
self.pocet=0<BR>
self.dc=False<BR> def
vykresli(self):<BR>
l=[]<BR> for prvek in
self.vstup.GetValue().split(','):<BR>
l.append(int(prvek))<BR>
self.body=l<BR>
self.dc.BeginDrawing()<BR>
self.dc.DrawLineList([l])<BR>
self.dc.EndDrawing()<BR> def OnPaint(self,
evt):<BR>
self.dc=wx.PaintDC(self.canvas)<BR>
self.dc.BeginDrawing()<BR>
self.dc.DrawLineList(self.body)<BR>
self.dc.EndDrawing()<BR>if __name__ == "__main__":<BR> okno =
wx.App(0)<BR>
parent=wx.MDIParentFrame(None,size=wx.Size(500,500))<BR>
child=wx.MDIChildFrame(parent,title="Graf",id=-1)<BR>
Canvas(child)<BR> child.Maximize()<BR>
parent.Show()<BR> okno.MainLoop()</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Do vstupuse zadavají čtyři čísla oddělené čárkou.
Tato čísla reprezentují souřadnice čáry, která by se po stisknutí tlačítka
vykreslit. Čára se vykreslí, ale pak mi to začne házet chyby kterým nerozumím
atd. Jak to opravit tak, aby se čára vykreslila a zůstala tam i po skrolování.
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Děkuji</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=jakohv@seznam.cz href="mailto:jakohv@seznam.cz">Jakub Vojacek</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=python@py.cz
href="mailto:python@py.cz">Konference PyCZ</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Saturday, March 24, 2007 12:54
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [python] Scrolled WxCanvas</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Ahoj</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Snažim se udělat jednoduchou tvarbu grafů ve Wx.
Ale mám potáže se scrollbary</FONT></DIV>
<DIV><FONT face=Arial size=2>Zatím jsem udělal toto:</FONT></DIV>
<DIV><FONT face=Arial size=2>import wx<BR>class Canvas:<BR>
def __init__(self,parent):<BR>
self.okno=parent<BR> self.radic =
wx.FlexGridSizer(3,2,0,0)<BR>
self.canvas = wx.Window(self.okno,
-1)<BR>
<BR> self.sb_vert =
wx.ScrollBar(self.okno, -1,
style=wx.SB_VERTICAL)<BR>
self.sb_vert.SetScrollbar(0,1000,1000,1000)<BR>
self.sb_hor = wx.ScrollBar(self.okno, -1,
style=wx.SB_HORIZONTAL)<BR>
self.sb_hor.SetScrollbar(0,1000,1000,1000)</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>
self.radic.Add(self.canvas, 1,
wx.EXPAND)<BR>
self.radic.Add(self.sb_vert, 0,
wx.EXPAND)<BR>
self.radic.Add(self.sb_hor, 0,
wx.EXPAND)<BR>
self.radic.Add((0,0))<BR>
<BR> self.radic.AddGrowableRow(0,
1)<BR> self.radic.AddGrowableCol(0,
1)</FONT></DIV>
<DIV> </DIV><FONT face=Arial size=2>
<DIV><BR>
self.canvas.SetCursor(wx.CROSS_CURSOR)<BR>
self.canvas.Bind(wx.EVT_PAINT,
self.OnPaint)<BR>
self.okno.SetSizer(self.radic)<BR> def
vykresli_graf(self,dc):<BR>
dc.BeginDrawing()<BR>
lines=[(-50,-50,50,50)]<BR>
dc.DrawLineList(lines)<BR>
dc.EndDrawing()<BR> def OnPaint(self,
evt):<BR> dc =
wx.PaintDC(self.canvas)<BR>
self.vykresli_graf(dc)<BR>if __name__ == "__main__":<BR>
okno = wx.App(0)<BR>
parent=wx.MDIParentFrame(None,size=wx.Size(500,500))<BR>
child=wx.MDIChildFrame(parent,title="Graf",id=-1)<BR>
Canvas(child)<BR> child.Maximize()<BR>
parent.Show()<BR> okno.MainLoop()<BR></DIV>
<DIV>ale i když je část tý čáry mimoviditelnou část canvasu, scrollbar se
nezmění. chtělo by to jako je v Tk:</DIV>
<DIV>canvas["yscrollcommand"] = S.set</DIV>
<DIV>Nelze to nějak nastavit??</DIV>
<DIV>Dík</DIV></FONT>
<P>
<HR>
<P></P>_______________________________________________<BR>Python mailing
list<BR>Python@py.cz<BR>http://www.py.cz/mailman/listinfo/python</BLOCKQUOTE></BODY></HTML>