Gui-Anderung einer Eigenschaft in einem anderen Modul
Verfasst: Mittwoch 8. April 2015, 14:09
Hallo zusammen,
ich bin Python Beginner und neu hier im Forum.
Ich beschäftige mich als Hobby mit Mikrocontroller und habe jetzt vor, mich auch mit dem Raspberry Pi zu beschäftigen
(Bisher habe ich VBA und C programmiert.)
Mein Ziel ist es, meine Mikrocontroller, welche bisher bereits über I2C Daten austauschen, "bequem" über den Raspberry Pi - (I2C) anzusprechen.
(Der Datenaustausch bisher war: PC - serielle Schnittstelle - MC-Master - I2C - MC-Slaves)
(Tut nichts zur Frage, nur kurz zu Info über meine Motivation.)
Da ich meine Programme gerne über eine GUI steuern würde, habe ich mich über TKinter informiert, und grundsätzlich klappts.
Mein Problem ist jedoch folgendes:
Ich starte mein Hauptfile (gui.py)
Dieses initialisiert mein Gui und geht in mainloop()
Wenn ich einen Button klicke, wird in einem andern Modul (funktionen.py) eine Funktion ausgeführt
Diese Funktion möchte wiederum in einem Textfeld (in gui.py) einen Text einfügen. (Dieses hat nichts mit dem Button zu tun)
Und das funktioniert so leider nicht.
Wisst ihr einen Weg, wie ich mein Problem lösen kann?
Das gegenseitig abhängige Module nicht optimal sind ist, mir klar, jedoch möchte meine Programmteile klar getrennt haben. (Gui und Funktionen.)
Danke,
Josef,
Im Anhang findet ihr den Code
gui.py
funktionen.py
ich bin Python Beginner und neu hier im Forum.
Ich beschäftige mich als Hobby mit Mikrocontroller und habe jetzt vor, mich auch mit dem Raspberry Pi zu beschäftigen
(Bisher habe ich VBA und C programmiert.)
Mein Ziel ist es, meine Mikrocontroller, welche bisher bereits über I2C Daten austauschen, "bequem" über den Raspberry Pi - (I2C) anzusprechen.
(Der Datenaustausch bisher war: PC - serielle Schnittstelle - MC-Master - I2C - MC-Slaves)
(Tut nichts zur Frage, nur kurz zu Info über meine Motivation.)
Da ich meine Programme gerne über eine GUI steuern würde, habe ich mich über TKinter informiert, und grundsätzlich klappts.
Mein Problem ist jedoch folgendes:
Ich starte mein Hauptfile (gui.py)
Dieses initialisiert mein Gui und geht in mainloop()
Wenn ich einen Button klicke, wird in einem andern Modul (funktionen.py) eine Funktion ausgeführt
Diese Funktion möchte wiederum in einem Textfeld (in gui.py) einen Text einfügen. (Dieses hat nichts mit dem Button zu tun)
Und das funktioniert so leider nicht.
Wisst ihr einen Weg, wie ich mein Problem lösen kann?
Das gegenseitig abhängige Module nicht optimal sind ist, mir klar, jedoch möchte meine Programmteile klar getrennt haben. (Gui und Funktionen.)
Danke,
Josef,
Im Anhang findet ihr den Code
gui.py
Code: Alles auswählen
import tkinter as tk
import funktionen as fkt
root = tk.Tk()
root.geometry('400x300')
root.title("Test-Programm")
Button_start=tk.Button(root, text = "Öffnen", command = fkt.datei_laden)
Button_start.pack()
Button_ende=tk.Button(root, text = "Ende", command=root.destroy)
Button_ende.pack()
T = tk.Text(root, height=4, width=50)
T.pack()
#################################################################
def text_insert(text):
T.insert(END, text)
#################################################################
root.mainloop()
Code: Alles auswählen
#import tkinter as tk
import gui
def datei_laden():
gui.text_insert("+++")