zusammenfuegen von code

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Benutzeravatar
azrael1111
User
Beiträge: 23
Registriert: Sonntag 12. November 2006, 21:05
Wohnort: Croatien

kann mir jemand helfen. Ich arbeite an einem program im boa cons.
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 erste kommt aus dem Boa constructor und dass ist der Child frame den ich benoetige.
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
Antworten