'Klappbare Listbox'

Fragen zu Tkinter.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Wie der Betreff schon sagt suche ich für Tkinter eine 'Klappbare Listbox', wenn ihr gerade einen Beitrag verfassen wollt wo drinsteht das ich mich genauer ausdrücken soll, dann schaut einfach mal auf das teil hinterdem Wort: Schriftgröße: :arrow: Sowas brauche ich, ich weiß aber nicht wie sowas heißt :K . Eine Referenz dazu wäre nicht schlecht. Danke schon mal hinvoraus.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Du meinst eine ComboBox - wenn du von Boxen redest, hier gibt es eine im ttk oder tix Bereich.
Aber ich denke dir reicht ein einfaches OptionsMenu.

Edit: Für ttk kann ich wärmstens http://www.tkdocs.com/tutorial/ empfehlen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Also eine Combobox kriege ich schon hin, aber wie ich da die Auswahl Möglichkeiten reinbekomme Habe ich auf den Link nicht gefunden. Wie ich darauf zugreifen kann auch nicht.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Hast du ttk genommen ?
Denn die Informationen dafür stehen sehr wohl im besagten Tutorial dabei.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Ja natürlich hab ich ttk genommen. Aber ich finde das da über Haupt nichts gut beschrieben ist, ich weiß manchmal echt nicht was bei den Links so toll sein soll, ist bei den Meisten Links so. Vielleicht liegt das daran das ich einfach nur wissen will: welche Funktion brauche ich für etwas und wie nimmt man sie her. Tut mir wirklich Leid aber ich komm da mit nicht weiter.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Gut beschrieben ? Ist doch nur ein Tutorial, die sind nie gut beschrieben :D

Aber oben rechts bei jedem Abschnitt gibt es einen Link zur Reference.
Die Information wie du aber an die Daten kommst bzw diese setzt, kann man auch aus dem Tutorial entnehmen.

Zu setzen:
http://www.tkdocs.com/tutorial/widgets.html#combobox
und dort bei dem fettgedruckten "Predefined Values" lesen.

Zum auslesen und setzen des aktuellen Wertes gibt es die angelegte StringVar "countryvar = StringVar()", per "get" und "set"-Methode.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Soweit war ich schon lange, aber wie ich das ausprobiert hab ist mir die IDLE abgestürzt.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Hier mal ein Beispiel, in der Annahme Python 3.x, allerdings ungetestet:

Code: Alles auswählen

import ttk
import tkinter

if __name__ == "__main__":
    root = tkinter.Tk()

    countryvar = tkinter.StringVar()
    country = ttk.Combobox(parent, textvariable=countryvar)
    country.configure(values=("USA", "Canada", "Australia"))
    country.pack()
	
    countryvar.set("USA")
    print(countryvar.get())
	
    countryvar.set("Deutschland")
	
    root.mainloop()
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Hab's schon selber geschafft, aber danke für die Mühe.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

War ja nicht sehr aufwendig, aber halt erst lesen, dann Beschweren. :mrgreen:
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Gibt's das noch nen Befehl oder sowas das man nicht selber was reinschreiben kann?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ja, ein readonly Option gibt es als state.
Aber dann kannst du eigentlich auch ein Optionsmenü nehmen :D
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Danke, ich brauche das des wegen weil ich eine für mein Splitt-Programm einen Neuen GUI brauche, und man soll die Größe der Stücke genauer auswählen können. Bis jetzt musste man immer alles in MB angeben und Komazahlen gehen nicht.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Was heißt den "Kommazahlen gehen nicht"? Ich vermute mal, das du ein Komma statte eines Punktes verwendest und dann einen ValueError bekommst.
Das Leben ist wie ein Tennisball.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Nein das mein ich nicht, wenn ich 0.5 MB ist das für das Programm nicht 512 KB. Also ein Logischer Fehler.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Das ist kein "logischer Fehler", sondern eine Frage der Definition.
0.5 MB sind in der Tat 500 kB, aber 0.5 MiB wären 512 KiB ... :D

Zum Einlesen: http://de.wikipedia.org/wiki/Megabyte
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Mach es wie Microsoft und lass es in KB angeben, weil sie es anders nicht hinbekommen haben (zumindest in ihrer Explorer-Suche) :mrgreen:
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Xynon1 hat geschrieben:Mach es wie Microsoft und lass es in KB angeben, weil sie es anders nicht hinbekommen haben (zumindest in ihrer Explorer-Suche) :mrgreen:
Des wegen gibt's Linux. :D Wenn es nach Microsoft gehen würde, hätten wir heute alle 640 KB RAM und es Gäbe kein Internet.

Oh, noch eine Frage zu der Programm Logik, soll ich die angegebene Zahl wenn man die Einheit von MB auf KB stellt umrechnen lassen oder nicht?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

numerix hat geschrieben:Das ist kein "logischer Fehler", sondern eine Frage der Definition.
0.5 MB sind in der Tat 500 kB, aber 0.5 MiB wären 512 KiB ... :D

Zum Einlesen: http://de.wikipedia.org/wiki/Megabyte
@numerix das ist sehr wohl ein Fehler, für das Programm sind angegebenen MB nur zahlen und werden danach in MB 'umgerechnet', des halb muss ich das noch besser schreiben. (
Ich versteh es einfach nicht, sonst erden mir die Kleinsten Fehler vorgehalten, und wenn ich mal selber sage das ich einen Fehler gemacht habe das wird das abgestritten. :roll: )
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Also IMHO, solltest du entweder die Einheiten auswählen lassen, oder halt nur eine Vorgeben,
aber egal wie, immer deutlich MiB angeben.
Dann sollten die meisten Wissen was gemeint ist und die die es nicht Wissen interessiert es auch nicht.

btw, numerix hat Recht, alles ein Frage der Definition, also sauber MiB schreiben :D
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten