Bild im wx.scrolledwindow scrollen
Verfasst: Freitag 5. Januar 2007, 15:17
Hallo,
Wie kann man ein Bild in wx.Scrolledwindow scrollen. Das Problem ist, wenn man ganz nach unten scrollt sieht man das Bild immer an der gleichen stelle... als ob se immer von der linken oberen Ecke des wx.ScrolledWindow neu geladen wird ohne ruecksinch darauf wo die scroller sind.
Frame1_r.py
App1_r.py
Danke!
Mit freundlichen Gruessen,
Aleksandar
Wie kann man ein Bild in wx.Scrolledwindow scrollen. Das Problem ist, wenn man ganz nach unten scrollt sieht man das Bild immer an der gleichen stelle... als ob se immer von der linken oberen Ecke des wx.ScrolledWindow neu geladen wird ohne ruecksinch darauf wo die scroller sind.
Frame1_r.py
Code: Alles auswählen
import wx
import wx.lib.buttons
import os
import sys
import pyfits
import win32com.client
def create(parent):
return Frame1(parent)
[wxID_FRAME1SCROLLEDWINDOW1, wxID_FRAME1_r] = [wx.NewId() for _init_ctrls in range(2)]
class Frame1(wx.Frame):
def _init_ctrls(self, prnt):
wx.Frame.__init__(self, id=wxID_FRAME1_r, name='', parent=prnt, pos=wx.Point(2, 2), style=wx.DEFAULT_FRAME_STYLE, title='THAIA')
self.SetClientSize(wx.Size(1272, 734))
self.Maximize()
self.scrolledWindow1 = wx.ScrolledWindow(id=wxID_FRAME1SCROLLEDWINDOW1, name='scrolledWindow', parent=self, pos=wx.Point(0, 24), size=wx.Size(1104, 580), style=wx.HSCROLL | wx.VSCROLL)
self.scrolledWindow1.SetScrollbars(1,1, 2688, 1868)
self.scrolledWindow1.SetScrollRate(40,40)
self.scrolledWindow1.Bind(wx.EVT_PAINT, self.on_panel_paint)
def __init__(self, parent):
self._init_ctrls(parent)
def on_panel_paint(self, event):
p = win32com.client.dynamic.Dispatch('PinPoint.Plate')
p.AttachFITS('E:/Aleksandar/Python/THAIA/4.fit')
m = p.NewPlateDIB()
r=p.RollAngle
m.Create(1, 1, r, 1)
m.Render(4350, 5200)
dc = wx.PaintDC(self.scrolledWindow1)
hdc = dc.GetHDC()
m.PaintPicture(hdc)
App1_r.py
Code: Alles auswählen
#!/usr/bin/env python
#Boa:App:BoaApp
import wx
import Frame1_r
modules ={'Frame1_r': [1, 'Main frame of Application', 'Frame1_r.py']}
class BoaApp(wx.App):
def OnInit(self):
wx.InitAllImageHandlers()
self.main = Frame1_r.create(None)
self.main.Show()
self.SetTopWindow(self.main)
return True
def main():
application = BoaApp(0)
application.MainLoop()
if __name__ == '__main__':
main()
Danke!
Mit freundlichen Gruessen,
Aleksandar