Rückgabewert ermitteln
Verfasst: Donnerstag 28. Juni 2007, 10:37
Vorweg - ich bin Anfänger!
Momentan versuche ich ein kleines Tool mit 2 Comboboxen zu schreiben.
Problem: Wie übergebe ich das Ergebnis der 1. Box (c1string) an den c2string , damit dort damit weitergearbeitet werden kann. Die Attribute sind fürs erste absichlich öffentlich gehalten um das ganze für mich zu vereinfachen.
Wenn ich print self.changed_cb in der Methode c2string Abfrage kommt etwas in der Art <bound method Interface.changed_cb of <__main__.Interface instance at 0x82d95cc>>.
Ich bin mir ziemlich sicher das ich das Prinzip der Übergabe der Werte zwischen einzelnen Methoden noch nicht richtig verstanden habe.
Leider verhaut es die Formatierung ein wenig. Ich hab keine Ahnung woran das liegt.
Zur Funktion: Das Tool liest Verzeichnisinformationen aus einer Datei und stellt die verfügbaren Verzeichnisse in der Combobox 1 zur Verfügung. Die Combobox 2 soll jetzt die Unterverzeichnisse des in Combobox 1 gewählten Verzeichnisses anbieten
MfG
Momentan versuche ich ein kleines Tool mit 2 Comboboxen zu schreiben.
Problem: Wie übergebe ich das Ergebnis der 1. Box (c1string) an den c2string , damit dort damit weitergearbeitet werden kann. Die Attribute sind fürs erste absichlich öffentlich gehalten um das ganze für mich zu vereinfachen.
Wenn ich print self.changed_cb in der Methode c2string Abfrage kommt etwas in der Art <bound method Interface.changed_cb of <__main__.Interface instance at 0x82d95cc>>.
Ich bin mir ziemlich sicher das ich das Prinzip der Übergabe der Werte zwischen einzelnen Methoden noch nicht richtig verstanden habe.
Code: Alles auswählen
import gtk
import pygtk
pygtk.require('2.0')
import os
import os.path
import re
import csv
from itertools import count, izip
class Interface:
def destroy(self,widget, data=None):
gtk.main_quit()
def delete_event(self, widget, event, data=None):
print "delete event occured"
return False
def changed_cb(self, combobox):
model = combobox.get_model()
index = combobox.get_active()
if index:
print ' Element :', model[index][0], 'gewählt'
sel_pos = model[index][0]
return sel_pos
def c2string(self, liste=None):
DEFAULT_PATH = '/home/dwarfy/python/Testordner/'
print self.changed_cb
#DEFAULT_FILE = """hier muss das Ergebnis aus der Abfrage c1string rein"""
liste = os.listdir('%s%s' %(DEFAULT_PATH, DEFAULT_FILE))
print liste
liste.sort()
return liste
def c1string(self, liste=None):
DEFAULT_PATH = '/home/dwarfy/python/'
DEFAULT_FILE = 'numbers.txt'
liste = []
csv_file = open(os.path.join(DEFAULT_PATH, DEFAULT_FILE), 'rb')
for checkrow, row in izip (count(1), csv.reader(csv_file, delimiter = '\t')):
if checkrow >= 10:
liste.append(row[0])
csv_file.close()
liste.sort()
return liste
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect("destroy", self.destroy)
self.window.connect("delete_event", self.delete_event)
self.window.set_border_width(10)
self.window.set_title('Testprogramm')
# self.window.set_size_request(400, 600)
self.vbox_1 = gtk.VBox(False, 0)
self.window.add(self.vbox_1)
self.hbox_1 = gtk.HBox(False, 0)
self.hbox_2 = gtk.HBox(False, 0)
self.vbox_1.pack_start(self.hbox_1, True, True, 0)
self.vbox_1.pack_start(self.hbox_2, True, True, 0)
c1string = self.c1string()
c2string = self.c2string()
liststore = gtk.ListStore(str)
liststore2 = gtk.ListStore(str)
liststore2.append(['Wählen Sie eine Nummer'])
liststore.append(['Wählen sie eine Aktion'])
for n in c1string:
liststore.append(['%s'%n])
print liststore
for n in c2string:
liststore2.append(['%s'%n])
print liststore2
self.combo_1 = gtk.combo_box_new_text()
self.combo_1.set_model(liststore)
self.combo_1.connect('changed', self.changed_cb)
self.combo_1.set_active(0)
self.combo_2 = gtk.combo_box_new_text()
self.combo_2.set_model(liststore2)
self.combo_2.connect('changed', self.changed_cb)
self.combo_2.set_active(0)
self.hbox_1.pack_start(self.combo_1, True, True, 0)
self.hbox_2.pack_start(self.combo_2, True, True, 0)
self.combo_1.show()
self.combo_2.show()
self.hbox_1.show()
self.hbox_2.show()
self.vbox_1.show()
self.window.show()
def main(self):
gtk.main()
if __name__ == "__main__":
interface = Interface()
interface.main()
Zur Funktion: Das Tool liest Verzeichnisinformationen aus einer Datei und stellt die verfügbaren Verzeichnisse in der Combobox 1 zur Verfügung. Die Combobox 2 soll jetzt die Unterverzeichnisse des in Combobox 1 gewählten Verzeichnisses anbieten
MfG