Vor einiger Zeit habe ich um hilfe gebeten und Gerold hat mir sehr geholfen als er mr ein Beispiel gescrieben hat. Als ich das Beispiel als ein MDIChildFrame in den boa einfuegen wolte, nahm er es nish an.
Kann mi jemand helfen wie ich in diesen code:
Code: Alles auswählen
import wx
import wx.lib.imagebrowser as ib
def create(parent):
return MDIChildFrame1(parent)
[wxID_MDICHILDFRAME1] = [wx.NewId() for _init_ctrls in range(1)]
class MDIChildFrame1(wx.MDIChildFrame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.MDIChildFrame.__init__(self, id=wxID_MDICHILDFRAME1, name='',
parent=prnt, pos=wx.Point(441, 222), size=wx.Size(400, 250),
style=wx.DEFAULT_FRAME_STYLE, title='MDIChildFrame1')
self.SetClientSize(wx.Size(392, 216))
def __init__(self, parent):
self._init_ctrls(parent)
diesen code einfuegen kann
Code: Alles auswählen
import wx.lib.imagebrowser as ib
wx.SetDefaultPyEncoding("iso-8859-1")
class MyFrame(wx.Frame):
def __init__(self, parent = None, id = -1, title = "Bildanzeige"):
# Init
wx.Frame.__init__(
self, parent, id, title, style = wx.DEFAULT_FRAME_STYLE & ~ (
wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX
)
)
self.titlestring = title
# Panel
panel = wx.Panel(self)
self.panel = panel
# Sizer
vbox = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox)
# Bildanzeige
image_view = wx.StaticBitmap(panel, size = (50, 10))
vbox.Add(image_view, 1, wx.EXPAND)
self.image_view = image_view
image_view.Bind(wx.EVT_LEFT_UP, self.show_image)
# Frame auf Mindestgröße resizen und zentrieren
panel.Fit()
self.Fit()
self.Center()
def show_image(self, event = None):
image_view = self.image_view
panel = self.panel
# Dialog
dlg = ib.ImageDialog(self)
if dlg.ShowModal() == wx.ID_OK:
# Dateiname eruieren und in Titelleiste schreiben
filename = dlg.GetFile()
self.SetLabel(self.titlestring + " -- " + filename)
# Bild laden
image = wx.Image(filename)
# Bilaufbau des Frames sperren
self.Freeze()
# Mindestgröße des Bildes festlegen und Panel und Frame an
# Mindestgröße anpassen.
image_view.SetSizeHintsSz(image.GetSize())
panel.Fit()
self.Fit()
# Bild zuweisen
image_view.SetBitmap(wx.BitmapFromImage(image))
image_view.Refresh()
# Bildaufbau wieder frei geben.
self.Thaw()
Der zweite ist der, der die benoetigte funktion hat der von gerold stammt aber allerdings von mir etwas nach gebrauch veraendert wurde.
Wenn ich versuche nur show_image nur einzufuegen ohne irgendetws mit ih zu verbinden und dann zu speichern bekomme ich volgendes: TypeError: encode() argument 1 must be string, not None
Danke im Voraus