Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Python Tkinter Progrämmli ohne Fehler läuft nicht?
Druckversion
Druckversion
Antworten
Antworten
Autor
Schule Python Tkinter Progrämmli ohne Fehler läuft nicht?
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-05-25


Er bemängelt. keine Fehler, aber das Fenster erscheint nicht.
Python
  1. import tkinter
  2. class MyApp(tkinter.Frame):
  3. def __init__(self, master=None):
  4. super().__init__(master)
  5. self.pack()
  6. self.createWidgets()
  7. self.createBindings()
  8. def createWidgets(self):
  9. self.Label = tkinter.Label(self)
  10. self.label.pack()
  11. self.label["text"] = "Bitte sende ein Event"
  12. self.entry = tkinter.Entry(self)
  13. self.entry.pack()
  14. self.ok = tkinter.Button(self)
  15. self.ok.pack()
  16. self.ok["text"] = "Beenden"
  17. self.ok["Command"] = self.quit
  18. def createBindings (self):
  19. self.entry.bind("Entenhausen", self.eventEntenhausen)
  20. self.entry.bind("ButtonPress-1", self.eventMouseClick)
  21. self.entry.bind("<MouseWheel>", self.event.Mousewheel)
  22. def eventEntenhausen(self, event):
  23. self.label["text"] = "Sie kennen das geheime Passwort"
  24. def eventMouseClick(self, event):
  25. self.label["text"] = "Mouseclick in Position"\
  26. "({},{})".format(event.x, event.y)
  27. def eventMouseWheel(self, event):
  28. if event.delta<0:
  29. self.label["text"] = "Bitte bewegen sie das Mausrad"\
  30. "in die richtige"
  31. else:
  32. self.label["text"] = "Vielen Dank"

Was ist zu tun?



-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10855
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-05-26


Hallo Bekell,
Du hast eine Klasse MyApp definiert, aber Du musst sie auch verwenden, also eine Instanz von MyApp erzeugen.

Servus,
Roland



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2020-05-26


2020-05-26 00:34 - rlk in Beitrag No. 1 schreibt:
Hallo Bekell,
Du hast eine Klasse MyApp definiert, aber Du musst sie auch verwenden, also eine Instanz von MyApp erzeugen.

OK danke, habe dies abgehängt:
  1. root = tkinter.Tk()
  2. app = MyApp(root)
  3. app.mainloop()

aber es bleibt schwarz und er sagt: 'MyApp' object has no attribute 'label'

Zeile 18 hab ich dahingehend verändert:
Python
  1. self.label = tkinter.label(self)

aber er sagt: "module 'tkinter' has no attribute 'label'" Vor allem, ich hab das aus Johannes Ernesto Python 3 ... was schreiben die denn in so einem teuren Buch?
Hat der Befehl inzwischen einen anderen Namen?


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10855
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2020-05-26


Hallo Bekell,
hast Du Dein Programm direkt aus dem Buch oder sind da noch Ergänzungen von Dir?
Ein einfacheres Beispiel findest Du in

In der Beschreibung von

wird kein Attribut label erwähnt.
Kommt das aus Deinem Buch?

Es gibt

und


Ich hoffe, das hilft Dir,
Roland



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Cdr
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.08.2018
Mitteilungen: 60
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-05-26


Hallo Bekell,

in Zeile neun definierst du ein Attribut Label (von MyApp) mit einem großen "L", in allen darauf folgenden Zeilen schreibst du es aber klein.

Das Attribut Label (von tkinter) musst du weiterhin groß lassen.

Liebe Grüße,

Cdr



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2020-05-26


2020-05-26 09:35 - Cdr in Beitrag No. 4 schreibt:
Hallo Bekell,

in Zeile neun definierst du ein Attribut Label (von MyApp) mit einem großen "L", in allen darauf folgenden Zeilen schreibst du es aber klein.

Das Attribut Label (von tkinter) musst du weiterhin groß lassen.
Cdr


in Beitrag Nr. 2 hatte ich geschrieben

Zeile 18 hab ich dahingehend verändert:

Jetzt mach ich es wieder rückgängig, schreibe es daher in Zeile 18 wieder groß, oder muß es überall groß?


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
viertel
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 04.03.2003
Mitteilungen: 27459
Aus: Hessen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-05-26


2020-05-26 16:55 - Bekell in Beitrag No. 5 schreibt:
[…] oder muß es überall groß?
Also wenn jemand „groß muß“, dann sucht er sich ein stilles Örtchen😛



-----------------
Bild



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, vom Themenstarter, eingetragen 2020-05-26


2020-05-26 08:45 - rlk in Beitrag No. 3 schreibt:
Hallo Bekell,
hast Du Dein Programm direkt aus dem Buch oder sind da noch Ergänzungen von Dir?Roland
Hallo Roland,
ich hab es direkt aus dem Buch. Hatte den Verlag angeschrieben, damit ich die Listings nicht abschreiben muß. Die haben geantwortet:


Guten Tag, Herr XYZ,

vielen Dank für Ihre Nachricht.

Leider können wir Ihnen das Angebot, ein E-Book zum Buch nachträglich vergünstigt zu erwerben, aufgrund der gesetzlichen Buchpreisbindung nicht mehr machen.
Wir bedauern dies sehr, müssen Sie jedoch um Verständnis bitten.

Das Angebot gibt es seit März 2018 nicht mehr in neuen Titeln.

Wenn noch Codes in den  Büchern sind, können Sie diese noch verwenden (sofern der Titel noch bei uns geführt wird), in neuen Titeln/Nachdrucken bzw. etwas älteren ist kein Code eingedruckt  und die Erzeugung nachträglicher Codes ist nicht mehr gestattet.

Die Kombination aus Buch und E-Book kann nur noch direkt in einem Bestellprozess über unseren Webshop erworben werden.

Beste Grüße aus Bonn

[Die Antwort wurde nach Beitrag No.5 begonnen.]


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, vom Themenstarter, eingetragen 2020-05-26


Jetzt schreibt er:
python
  1. _configure
  2. self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
  3.  
  4. TclError: unknown option "-Command"



-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 05.09.2008
Mitteilungen: 2056
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, vom Themenstarter, eingetragen 2020-05-26


Hallo Roland, Das erste von Dir zitierte Beispiel funktioniert auch nicht. Drückt man die rote Quitt Botton, dann wird er blau und hängt sich auf!


-----------------
Das Schwierige ist nicht die Mathematik. Schwierig ist es zu formulieren, daß man selber versteht, was man sieht und die anderen auch!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10855
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, eingetragen 2020-05-26


Hallo Bekell,
zuerst zur Groß- und Kleinschreibung: auf der linken Seite definierst Du ein Attribut Deiner Klasse, dass Du nennen kannst wie Du willst, Du musst aber konsistent die gleiche Schreibweise verwenden.
Python
  1. self.label = tkinter.Label(self)
Auf der rechten Seite steht Label für den Attributnamen von tkinter, daher musst Du es so schreiben, wie es in dieser Klasse definiert ist, das hat Cdr ja schon geschrieben.

Mit dem Beispiel von das nicht funktioniert meinst Du vermutlich
Python
  1. import tkinter as tk
  2.  
  3. class Application(tk.Frame):
  4. def __init__(self, master=None):
  5. super().__init__(master)
  6. self.master = master
  7. self.pack()
  8. self.create_widgets()
  9.  
  10. def create_widgets(self):
  11. self.hi_there = tk.Button(self)
  12. self.hi_there["text"] = "Hello World\n(click me)"
  13. self.hi_there["command"] = self.say_hi
  14. self.hi_there.pack(side="top")
  15.  
  16. self.quit = tk.Button(self, text="QUIT", fg="red",
  17. command=self.master.destroy)
  18. self.quit.pack(side="bottom")
  19.  
  20. def say_hi(self):
  21. print("hi there, everyone!")
  22.  
  23. root = tk.Tk()
  24. app = Application(master=root)
  25. app.mainloop()

Bist Du sicher, dass Du alle notwendigen Programme (Python, Tk, vermutlich auch Tcl) installiert hast? Ich würde zuerst ein Beispiel in Tk versuchen, um zu überprüfen, ob Tk funktioniert.
Bei mir wird der rote QUIT-Knopf schwarz, sobald der Mauszeiger über dem Knopf liegt und bei einem Klick wird das Fenster geschlossen und das Python-Programm beendet.

2020-05-26 17:07 - Bekell in Beitrag No. 8 schreibt:
Jetzt schreibt er:
python
  1. _configure
  2. self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
  3.  
  4. TclError: unknown option "-Command"

Warauf bezieht sich "jetzt", welchen Wert hat cmd?

Servus,
Roland


[Verschoben aus Forum 'Informatik' in Forum 'Programmieren' von rlk]



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10855
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2020-05-28


Hallo Bekell,
ich habe noch einen Hinweis gefunden, wie Du überprüfen kannst, ob Tkinter bei Dir funktioniert:
https://docs.python.org/3/library/tkinter.html schreibt:
Running python -m tkinter from the command line should open a window demonstrating a simple Tk interface, letting you know that tkinter is properly installed on your system, and also showing what version of Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific to that version.


Servus,
Roland



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Bekell wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]