Tkinter Allgemein

Fragen zu Tkinter.
Antworten
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

Freitag 19. Januar 2018, 11:16

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
Benutzeravatar
wuf
User
Beiträge: 1419
Registriert: Sonntag 8. Juni 2003, 09:50

Freitag 19. Januar 2018, 14:45

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:
Take it easy Mates!
Moon
User
Beiträge: 37
Registriert: Mittwoch 20. Dezember 2017, 15:21

Freitag 19. Januar 2018, 22:57

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
Benutzeravatar
wuf
User
Beiträge: 1419
Registriert: Sonntag 8. Juni 2003, 09:50

Samstag 20. Januar 2018, 01:32

@ 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:
Take it easy Mates!
Antworten