ich habe mir einen kleinen Texteditor mit FTP-Unterstützung geschrieben, aber als UI-Toolkit noch Tkinter verwendet. Deshalb möchte ich jetzt auf GTK umsteigen, da ich mittlerweile auf einer Linux-Kiste arbeite.
Aber zum eigentlichen Problem: Im Zuge desssen habe ich auch gleich den Code optimiert, auch einiges in eigene Module ausgelagert. Jetzt habe ich eine Methode in einem Modul, dass Text in das Textfeld in der Hauptklasse einfügen soll.
Da es etwas kompliziert wäre, dass im Detail zu beschreiben, habe ich ein Beispiel gemacht, dass demonstriert, wie es später ablaufen soll:
Code: Alles auswählen
import pygtk
pygtk.require("2.0")
import gtk
class editor_app:
def __init__(self):
self.w = gtk.Window()
self.w.set_title("UI Test")
self.w.set_size_request(300, 300)
self.w.set_border_width(40)
self.textview = gtk.TextView()
self.w.add(self.textview)
self.w.connect("destroy", gtk.main_quit)
self.w.show_all()
def insert_text(self, t):
b = self.textview.get_buffer()
b.set_text(t)
def main(self):
gtk.main()
insert_text = staticmethod(insert_text)
class other_class:
def __init__(self):
editor_app.insert_text("Hello world!")
a = editor_app()
b = other_class()
a.main()
Code: Alles auswählen
Traceback (most recent call last):
File "test.py", line 32, in <module>
b = other_class()
File "test.py", line 29, in __init__
editor_app.insert_text("Hello world!")
TypeError: insert_text() takes exactly 2 arguments (1 given)
Im übrigen nutze ich python 2.5.2 .
Danke im Voraus
baracuda
PS: wie schon angedeutet: verkompliziert es dass Problem, wenn editor_app die andere Klasse als Modul importiert?