[gelöst] Linien komplett und scrollbar darstellen
Verfasst: Montag 4. Februar 2008, 13:38
Hallo,
ich habe nun das nächste Problem
Beim Zeichnen meines Weg-Zeit-Diagramms werden die vertikalen Linien nicht richtig gezeichnet. Sobald ich scrolle, sind diese wie wegradiert. Im Gegensatz zum folgenden Beispiel werden aber wenigstens die horizontalen Linien vernünftig gezeichnet.
Was muss ich machen, damit die Linien komplett und scrollbar gezeichnet werden?
Mein Beispielcode:
Grüße
Mawilo
ich habe nun das nächste Problem
Beim Zeichnen meines Weg-Zeit-Diagramms werden die vertikalen Linien nicht richtig gezeichnet. Sobald ich scrolle, sind diese wie wegradiert. Im Gegensatz zum folgenden Beispiel werden aber wenigstens die horizontalen Linien vernünftig gezeichnet.
Was muss ich machen, damit die Linien komplett und scrollbar gezeichnet werden?
Mein Beispielcode:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
wx.SetDefaultPyEncoding("iso-8859-15")
class MainFrame(wx.Frame):
def __init__(self, parent):
wx.Frame.__init__(self, parent, -1, 'Weg-Zeit Diagramm', size=(1000, 700))
graficwindowsize = 1250, 5200
self.spWindow = wx.SplitterWindow(self, style=wx.SP_3D)
self.top_w = wx.Panel(self.spWindow, -1, style=wx.DEFAULT)
self.bottom_w = wx.ScrolledWindow(self.spWindow, -1, style=wx.DEFAULT)
self.bottom_w.SetScrollbars(1, 1, graficwindowsize[0], graficwindowsize[1])
self.spWindow.Initialize(self.top_w)
self.spWindow.Initialize(self.bottom_w)
self.spWindow.SetMinimumPaneSize(10)
self.spWindow.SplitHorizontally(self.top_w, self.bottom_w, 120)
self.graficpanel = wx.Panel(self.bottom_w, -1, style=wx.SIMPLE_BORDER)
self.graficpanel.SetBackgroundColour(wx.WHITE)
self.graficpanel.SetClientSize((3000, 6000))
button_v = wx.Button(self.top_w, -1, label='Vertikale Linien')
button_h = wx.Button(self.top_w, -1, label='Horizontale Linien')
mainsizer = wx.BoxSizer(wx.VERTICAL)
mainsizer.Add((10, 10))
mainsizer.Add(button_h)
mainsizer.Add((10, 10))
mainsizer.Add(button_v)
self.top_w.SetSizer(mainsizer)
self.Bind(wx.EVT_BUTTON, self.createHorizontalLines, button_h)
self.Bind(wx.EVT_BUTTON, self.createVerticalLines, button_v)
def createHorizontalLines(self, event=None):
gap = 50
for y in range(100):
self.dc.DrawLine(50, gap * y, 1200, gap * y)
def createVerticalLines(self, event=None):
gap = 130
for x in range(9):
self.dc.DrawLine(gap * x, 20, gap * x, 5000)
def startGrafic(self):
self.graficpanel.Bind(wx.EVT_PAINT, self.initGrafic)
def initGrafic(self, event=None):
self.dc = wx.PaintDC(self.graficpanel)
def main():
app = wx.PySimpleApp()
frame = MainFrame(None)
frame.Show()
frame.startGrafic()
app.MainLoop()
if __name__ == '__main__':
main()
Mawilo