Seite 1 von 1

Tkinter Allgemein

Verfasst: Freitag 19. Januar 2018, 11:16
von Moon
Hey zusammen,

ich habe mich nun entschlossen Tkinter als GUI zu benutzen. Habe mich auch schon etwas eingearbeitet.
Wenn ich die python file öffne dann wird ein Windowsfenster sowie ein weiteres Fenster geöffnet welches dann den Inhalt der Programmierung mit Tkinter hat. Dann habe ich ja 2 Fenster. Warum ist das denn so? Ich dachte es bleibt immer ein Fenster?

Noch was:
Ich habe nun 2 Buttons erstellt und diese versucht mittig, nebeneinander, darzustellen/zu positionieren. Da habe ich dann ne Variante mit dem Frame von Tkinter gefunden und ausprobiert. Nun wenn ich jedoch dies so mache, werden die Buttons immernoch untereinander dargestellt und wenn ich versuche in der Methode welche die Buttons einbettet die side anzugeben, dann schließt sich das Fenster sofort wieder. Ich weiß nicht warum.
Hoffe ihr könnt mir da Ratschläge geben.

Mein Code (welcher den Fehler hat, sonst würde das Fenster ja offen bleiben):

Code: Alles auswählen

import tkinter as tk

def sayHello():
    print("Hello Guys")
# erzeugt das Root-Widget, dies liefert die Titelleiste und die Dekoration
root = tk.Tk() 
# title setzen
root.title("try")
# erzeugt ein Label
label = tk.Label(root, text="Test")

label.pack()

frame = tk.Frame(root)
frame.pack()

buttonStart = tk.Button(frame, text="sayHello", command=sayHello)
buttonStart.pack(side=LEFT)
buttonQuit = tk.Button(frame, text="Quit", command=frame.quit)
buttonQuit.pack(side=LEFT)


# Fenster bleibt solange offen bis das Fenster geschlossen wird. 
root.mainloop()
Moon

Re: Tkinter Allgemein

Verfasst: Freitag 19. Januar 2018, 14:45
von wuf
Hi Moon

Dein Skript löst bei mir folgende Fehlermeldung aus:

Traceback (most recent call last):
File "tkinter_allgemein_01.py", line 18, in <module>
buttonStart.pack(side=LEFT)
NameError: name 'LEFT' is not defined


Die Konstante LEFT wird aus dem verwendeten tk-Modul abgerufen. Mit dieser Modifikation sollte das Skript fehlerfrei ausgeführt werden:

Code: Alles auswählen

buttonStart = tk.Button(frame, text="sayHello", command=sayHello)
buttonStart.pack(side=tk.LEFT)
buttonQuit = tk.Button(frame, text="Quit", command=frame.quit)
buttonQuit.pack(side=tk.LEFT)
Bekommst du die ob genannte Fehlermeldung nicht, wenn du dein Skript ausführst?

Gruss wuf :wink:

Re: Tkinter Allgemein

Verfasst: Freitag 19. Januar 2018, 22:57
von Moon
Hey,

Aso ok. Das ist ein Modul von Tkinter. Habe ich nicht gedacht. Durch das hinzufügen des Modules funktioniert alles so wie ich es mir erhofft habe. Danke.

Zu deiner Frage ob ich die Fehlermeldung nicht sehe. Nein. Wenn ich die Python Datei so aufrufe, also mit Doppelklick, dann startet die cmd von Windows und die Oberfläche, bzw das Fenster, von Tkinter. Und wenn da was falsch ist schließt sich das Fenster gleich nach dem starten wieder.

Grüße,
Moon

Re: Tkinter Allgemein

Verfasst: Samstag 20. Januar 2018, 01:32
von wuf
@ Moon
OK das sieht unter Windows möglicherweise nicht gleich aus wie bei mir. Ich arbeite hier mit Ubuntu 16.04 und Geany.

Gruss wuf :wink: