Tkinter Allgemein

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

Tkinter Allgemein

Beitragvon Moon » 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):
  1. import tkinter as tk
  2.  
  3. def sayHello():
  4.     print("Hello Guys")
  5. # erzeugt das Root-Widget, dies liefert die Titelleiste und die Dekoration
  6. root = tk.Tk()
  7. # title setzen
  8. root.title("try")
  9. # erzeugt ein Label
  10. label = tk.Label(root, text="Test")
  11.  
  12. label.pack()
  13.  
  14. frame = tk.Frame(root)
  15. frame.pack()
  16.  
  17. buttonStart = tk.Button(frame, text="sayHello", command=sayHello)
  18. buttonStart.pack(side=LEFT)
  19. buttonQuit = tk.Button(frame, text="Quit", command=frame.quit)
  20. buttonQuit.pack(side=LEFT)
  21.  
  22.  
  23. # Fenster bleibt solange offen bis das Fenster geschlossen wird.
  24. root.mainloop()


Moon
Benutzeravatar
wuf
User
Beiträge: 1368
Registriert: Sonntag 8. Juni 2003, 09:50

Re: Tkinter Allgemein

Beitragvon wuf » 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:
  1. buttonStart = tk.Button(frame, text="sayHello", command=sayHello)
  2. buttonStart.pack(side=tk.LEFT)
  3. buttonQuit = tk.Button(frame, text="Quit", command=frame.quit)
  4. 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

Re: Tkinter Allgemein

Beitragvon Moon » 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: 1368
Registriert: Sonntag 8. Juni 2003, 09:50

Re: Tkinter Allgemein

Beitragvon wuf » 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!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder