http://satzende.deviantart.com/art/TempWindow-268621864
Hallo
In meiner Main klasse deklariere/definiert ich alle Dinge die man auf dem Bild sehen kann aber.
Ein Menu Eintrag Ruft einen Dialog auf dessen Antwort dann in einer CallBack Funktion verarbeitet wird.
Nun soll in der CallBack funktion, werte an Scrollwindow gereicht werden.
Wie komme ich nun an ScrollWindow ran ?
Wie komme ich nun an ScrollWindow ran ?
Die 2 module hänge ich auf Wunsch auch noch an. Die stelle ist in der klasse 2Menu" in der methode "dia"
Das Problem ist das ich die instand von LayMen brauche die in der main klasse deklariert wurde
Das Problem ist das ich die instand von LayMen brauche die in der main klasse deklariert wurde
Code: Alles auswählen
#-*- coding: UTF-8 -*-
import pygtk
pygtk.require('2.0')
import gtk, os ,XmlMen, LayMan
class dia_hinzu(gtk.Dialog):#Dialog Menu (Main-> Hinzufügen)Vbox Hbox
_imagePfad_ = "/home/mathias/Bilder/logo3.jpg"
def __init__(self):
gtk.Dialog.__init__(self,"Hinzufügen", self,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OK, gtk.RESPONSE_OK))
#declaration
self.index = {"Dif_Col":None,"Geo_War":None,"Spe_Col":None}#Pfad index
self.fcb = gtk.FileChooserButton("fcb")
self.fil = gtk.FileFilter()
self.name_entry = gtk.Entry(15)
self.cb = gtk.combo_box_new_text()
self.ima = gtk.Image()
self.lab = gtk.Label("Chanel : ")
self.lab2 = gtk.Label("Material-Name: ")
self.lab3 = gtk.Label("/ ")#parent -> sw
self.lab4 = gtk.Label("Pfad:")
self.sw = gtk.ScrolledWindow()
self.hb = gtk.HBox()
self.hb2 = gtk.HBox()
self.vb = gtk.VBox()
self.vb2 = gtk.VBox()
#ima = Image Edit
pix = gtk.gdk.pixbuf_new_from_file(self._imagePfad_)
self.ima.set_from_pixbuf(pix.scale_simple(125,111,gtk.gdk.INTERP_BILINEAR))
#name_entry = entry edit #name_entrye
self.name_entry.set_size_request(80,25)
#cb = comboBox Edit
self.cb.append_text("Dif_Col")
self.cb.append_text("Geo_War")
self.cb.append_text("Spe_Col")
self.cb.set_active(0)
self.cb.connect('changed',self.comcon)
#fcb = FileCooseButton
self.fcb.connect("file-set",self.labpfad)
self.fcb.set_current_folder("/")
self.fcb.add_filter(self.fil)
self.fcb.set_size_request(30,30)
#fil = imagefilter
self.fil.set_name("Images")
self.fil.add_mime_type("image/png")
self.fil.add_mime_type("image/jpeg")
self.fil.add_mime_type("image/gif")
#sw = scrolledWindow
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
self.sw.add_with_viewport(self.lab3)
self.sw.set_size_request(200,20)
#hb = HBox
self.hb.pack_start(self.ima)
self.hb.pack_start(self.vb)
self.hb.pack_start(self.vb2)
#vb = VBox
self.vb.pack_start(self.lab2,False,False)
self.vb.pack_start(self.lab,False,False)
self.vb.pack_start(self.lab4,False,False)
self.vb.set_spacing(35)
self.vb.set_size_request(140,0)
#blfra = gtk.frame# Blinde
self.blfra =gtk.Frame()
self.blfra.set_shadow_type(gtk.SHADOW_NONE)
#vb2 = VBox
self.vb2.pack_start(self.name_entry,False,False)
self.vb2.pack_start(self.cb,False,False)
self.vb2.pack_start(self.hb2,False,False)
self.vb2.pack_start(self.blfra)
self.vb2.set_spacing(21)
#hb2 = HBox
self.hb2.pack_start(self.sw,False,False)
self.hb2.pack_start(self.fcb,False,False)
#self propertys
self.set_border_width(10)
self.vbox.pack_start(self.hb)
def comcon(self,widget,data=None):#manage den inhalt der dropDown liste
model = widget.get_model()
activ = widget.get_active()
if self.index[model[activ][0]] == None:
self.lab3.set_text("/ ")
pix = gtk.gdk.pixbuf_new_from_file(self._imagePfad_)
self.ima.set_from_pixbuf(pix.scale_simple(125,111,gtk.gdk.INTERP_BILINEAR))
else:
self.lab3.set_text(self.index[model[activ][0]])
pix = gtk.gdk.pixbuf_new_from_file(self.index[model[activ][0]])
self.ima.set_from_pixbuf(pix.scale_simple(125,111,gtk.gdk.INTERP_BILINEAR))
def labpfad(self,widget,data= None):#callback FileChooseButton -> Label
#FileChooseButton übergibt daten an (PfadLabel) & self.image
temp = widget.get_filename()#_entrye
if os.path.isfile(temp):
model = self.cb.get_model()
activ = self.cb.get_active()
self.index[model[activ][0]] = temp
self.lab3.set_text(temp)
pix = gtk.gdk.pixbuf_new_from_file(temp)
self.ima.set_from_pixbuf(pix.scale_simple(125,111,gtk.gdk.INTERP_BILINEAR))
else:
print("Error : \""+temp+"\" ist keine korrekte angabe")
def rundialog(self):
self.show_all()
result = self.run()
self.hide()
if result == -5:
if self.name_entry.get_text_length() > 0 and self.index["Dif_Col"] != None:
dic = {}
dic.update(self.index)
dic.update({"MatNam":self.name_entry.get_text()})
return dic
else:
print("Name lenge : "+str(self.name_entry.get_text_length())+"\nColor Pfad : "+str(self.index["Dif_Col"]))
return None
class menu(gtk.MenuBar):
#_parrent = None
def __init__(self):
gtk.MenuBar.__init__(self)
gtk.MenuBar.__init__(self)
self.menu = gtk.Menu()
self.menui = gtk.MenuItem("Hinzufügen")
self.menui.connect("activate",self.dia)
self.menu.append(self.menui)
self.menui = gtk.MenuItem("Bearbeiten")
self.menu.append(self.menui)
self.menui = gtk.MenuItem("Delete")#zweckentfremdet
self.menui.connect("activate",self.atri)
self.menu.append(self.menui)
self.menui = gtk.MenuItem("Exit")
self.menui.connect("activate",lambda w: gtk.main_quit())
self.menu.append(self.menui)
self.mainMenu = gtk.MenuItem("Main")
self.mainMenu.set_submenu(self.menu)
self.append(self.mainMenu)
self.set_size_request(50,40)
#Dummy
def atri(self,wid,data=None):
print("Parrent " +str(self.get_parent()))
def dia(self,data):
di = dia_hinzu()
temp = di.rundialog()
if temp != None:
#self.material = temp
xml = XmlMen.XmlMen()
ausage = xml.add_mater(temp)
if ausage == None:
lm = LayMan.LayMan()# Hier ist der Wurm
else:
#ausage in eine statusbar
pass
else:
#ausage in eine statusbar
pass
class myW(object):
def __init__(self):
self.window = gtk.Window()
self.window.set_title("Der Titel")
self.window.set_size_request(300,300)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.connect("delete_event", self.event_delete)
self.window.connect("destroy", self.destroy)
self.vb = gtk.VBox()
self.menuBar = menu()
self.vb.pack_start(self.menuBar,False,False,0)
layout = LayMan.LayMan()
xm = XmlMen.XmlMen()
self.vb.pack_start(layout)
layout.new_load(xm.getMater2LayMen())
self.window.add(self.vb)
self.window.show_all()
def event_delete(self, widget, event, data=None):
return False
def destroy(self, data=None):
gtk.main_quit()
def main(self):
gtk.main()
i = myW()
i.main()