Lupen Effekt
Verfasst: Mittwoch 17. Januar 2007, 02:20
Hallo,
Kann man einen Lupen Effekt machen? Wenn man ueber ein Bild im scrolledwindow1 mit der maus geht soll sich im sashWindow1 eine vergroesserung (3 mal) des Bildes anzeigen. Die bilder im scrolledwindow1 werden sehr oft neu aktualisiet (geblinkt) also soll immer das aktuelle Bild vergroessert werden.
Danke!
Aleksandar
Kann man einen Lupen Effekt machen? Wenn man ueber ein Bild im scrolledwindow1 mit der maus geht soll sich im sashWindow1 eine vergroesserung (3 mal) des Bildes anzeigen. Die bilder im scrolledwindow1 werden sehr oft neu aktualisiet (geblinkt) also soll immer das aktuelle Bild vergroessert werden.
Code: Alles auswählen
# -*- coding: cp1250 -*-
import wx
import wx.lib.scrolledpanel as scrolled
import wx.lib.buttons
class MyFrame(wx.Frame):
def __init__(self, parent = None, id = -1, title = "",
size = wx.Size(1000, 750)):
wx.Frame.__init__(self, parent, id, title= '',
pos = wx.Point(0, 0), size = size)
self.statusbar=self.CreateStatusBar()
self.sashWindow1 = wx.SashWindow(self, name='sashWindow1', pos=wx.Point(820, 24), size=wx.Size(152, 128),
style=wx.CLIP_CHILDREN | wx.SW_3D)
self.scrolledWindow1 = wx.ScrolledWindow(self, name='scrolledWindow', pos=wx.Point(0, 24), size=wx.Size(780, 550), style=wx.HSCROLL | wx.VSCROLL)
self.scrolledWindow1.SetBackgroundColour(wx.Colour(0, 90, 159))
self.scrolledWindow1.SetScrollbars(1,1, 3000, 2000)
self.scrolledWindow1.SetScrollRate(40,40)
self.toggleButton2 = wx.ToggleButton(self, label='Show Image', name='toggleButton2', pos=wx.Point(800, 295),
size=wx.Size(90, 23), style=0)
statbmp = wx.StaticBitmap(self.scrolledWindow1)
self.statbmp = statbmp
self.toggleButton2.Bind(wx.EVT_TOGGLEBUTTON, self.update_bitmap)
self.statbmp.Bind(wx.EVT_MOTION, self.OnMotion)
def OnMotion(self, event):
pt = event.GetPositionTuple()
self.statusbar.SetStatusText(str(pt))
event.Skip()
def update_bitmap(self, event = None):
"""
Bild holen und anzeigen
"""
w, h = 3000, 2000 # hier sollte natürlich die korrekte Größe stehen
bmp = wx.EmptyBitmap(w, h)
dc = wx.MemoryDC(bmp)
hdc = dc.GetHDC()
tmpbmp = wx.Bitmap("spanish.jpg")
dc.DrawBitmap(tmpbmp, 0, 0)
# Bildaufbau blockieren
self.scrolledWindow1.Freeze()
# Bild zuweisen
self.statbmp.SetBitmap(bmp)
# ScrolledWindow einrichten
self.scrolledWindow1.FitInside()
self.scrolledWindow1.SetScrollbars(20, 20, w/20, h/20)
self.statbmp.Refresh()
# Bildaufbau wieder erlauben
self.scrolledWindow1.Thaw()
def main():
app = wx.PySimpleApp()
myframe = MyFrame()
#myframe.Center()
myframe.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Danke!
Aleksandar