Hallo,
Ich brauch Hilfe bei meinem Passwort Generator .Ich wollte eine GUI mit tkinter programmieren. Wenn ich die Länge angeben möchte und dies in range c mache dann gibt es eine Fehlermeldung.Wie kann ich das programmieren, dass wenn ich eine Zahl in die Eingabe eingebe ich dann diese länge erhalte.Würde mich über eine Antwort freuen , danke.
Warum machst du einen range von 1 in generate? Der ist doch komplett wirkungslos. Und welche Fehlermeldung bekommst du genau? Und schau dir mal genau an, wie deine Argumente beim Button benamt sind, und wie die WIRKLICH heissen muesen. Und warum benennst du das Label so komisch "lab1"? Das sollte passwort_label oder etwas aehnliches heissen. Gleiches gilt fuer den Button. Und
sLeft = "%s" % 750
ist wirklich durch die Brust ins Auge. Entweder schreib gleich
sLeft = "750"
oder besser noch gleich format benutzen in deinem geometry call.
@CIMA-PYTHON: Sternchen-Importe sind Böse™. Im Fall von `tkinter` holt man sich damit über 150 Namen ins Modul von denen nur ein kleiner Bruchteil benötigt wird. Schlimmer noch, auch mindestens einen Namen den man sich so gar nicht einfangen sollte, denn man bekommt ja nicht nur die Namen die das `tkinter`-Modul definiert, sondern auch was im `tkinter`-Modul von woanders importiert wird. Es wird damit schnell unübersichtlich wo welcher Name her kommt. Zudem besteht die Gefahr von Namenskollisionen.
`tkinter` wird üblicherweise unter dem Namen `tk` importiert: ``import tkinter as tk`` und dann über den namen auf die Werte in dem Modul zugegriffen, zum Beispiel ``password_label = tk.Label(…)``.
Was soll das `s` bei `sLeft`, `sTop`, und so weiter bedeuten? Namen sollten den Leser nicht zum Raten zwingen. Sollte das für `string` stehen – so eine Information hat weder ausgeschrieben noch abgekürzt etwas in Namen zu suchen.
Letztlich sollte man Grösse und Position für ein Fenster nicht vorgeben. Die Grösse ergibt sich bereits automatisch aus dem Fensterinhalt, und bei der Position weiss die Fensterverwaltung üblicherweise besser wo Platz ist, oder wo der Benutzer das gerne haben möchte, als der Programmierer.
Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase).
Importe gehören an den Anfang des Moduls. Gefolgt von der Definition von Konstanten.
Für die ASCII-Kleinbuchstaben und Ziffern gibt es im `string`-Modul bereits Konstanten, die muss man nicht selbst eintippen.
Auf Modulebene gehört nur Code der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst. Funktionen und Methoden sollten alles was sie ausser Konstanten benötigen als Argument(e) übergeben bekommen. Das bedeutet bei GUIs in der Regel das man objektorientierte Programmierung (OOP) benötigt. In sehr einfachen Fällen geht es meistens noch mit `functools.partial()`, aber OOP sollte man eigentlich drauf haben, bevor man mit der GUI-Programmierung anfängt.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Ich bin jetzt mit der GUI so weit,dass ich die Länge angeben kann. Doch ich kann das generierte Passwort im Label nicht markieren oder auswählen (um es zu kopieren). Ich habe auch versucht das Passwort in ein Eingabefenster einzufügen doch das hat nicht funktioniert.Freue mich sehr über Hilfe oder Verbesserungen am Code (Python 3.7.3 Anfänger)