Seite 1 von 1

Verfasst: Montag 16. März 2009, 21:42
von vogti
So wird das doch aber schon beim start aufgerufen! Ich möchte die möglichkeit haben auch von anderen Funktionen aus ins Textfeld zu schreiben.

Was wenn ich in rechner.py noch eine Funktion habe, die etwas ganz anderes rechnet (z.b. rechne2). Derjenige, der format.py aufruft entscheidet sich zwischen rechne und rechne2. Je nach Entscheidung wird die Funktion aufgerufen und sollte das Ergebnis dann ins Textfeld schreiben. Bei deiner Lösung, DasIch, würde die Funktion Rechne doch schon beim Programm start geöffnet werden, ohne dass ich da irgendwas wählen kann.
rechner.py

Code: Alles auswählen

def rechne():
    a = 1
    b = 2
    Ergebnis = a+b
def rechne2():
    a=1
    b=2
    Ergebnis = a*b
(format.py wird eben dementsprechend geändert, dass man zwischen rechne und rechne2 wählen kann...)

Verfasst: Montag 16. März 2009, 21:57
von DasIch
Dafür gibt es Bedingungen usw. aber dass wirst du ja wohl selbst hinbekommen. Du solltest auf jedenfall nochmal ein Tutorial durcharbeiten.

Verfasst: Dienstag 17. März 2009, 08:06
von wuf
Hallo vogti

Hier nochmal etwas zum ausprobieren:

Code: Alles auswählen

# Skriptname fill_textfield_01_02.py (wuf)

import Tkinter as tk
import rechner

def add():
    a = 1
    b = 2
    task = "%d + %d = %d" % (a, b, rechner.add(a, b))
    insert_task(task)

def multiply():
    a = 15
    b = 18
    task = "%d * %d = %d" % (a, b, rechner.multiply(a, b))
    insert_task(task)


def insert_task(task):
    textfeld.insert(tk.END, task + '\n')

f = tk.Tk()
f.geometry('500x500')
f.title('Test')

#Menuleiste erstellen
mle = tk.Menu(master=f)
f.config(menu=mle)

#Menu erstellen
m1 = tk.Menu(master=mle)
mle.add_cascade(label='Datei', menu=m1)
m1.add_command(label='Addiere', command=add)
m1.add_command(label='Multipliziere', command=multiply)
m1.add_command(label='Beenden', command=f.destroy)

textfeld = tk.Text(f, width=50, height=10)
textfeld.pack(side=tk.RIGHT, padx=2, pady=2)

f.mainloop()

Code: Alles auswählen

# Modul rechner.py

def add(a, b):
    """Addieren"""
    return a + b

def multiply(a, b):
    """Multiplizieren"""
    return a * b
Gruss wuf :wink:

Verfasst: Freitag 20. März 2009, 01:45
von yipyip
Hier meine Version:
http://paste.pocoo.org/show/108761/

Das Verteilen der Klassen auf mehrere Dateien
sollte dann auch kein Problem mehr sein.

:wink:
yipyip