Scrollbar Problem

Fragen zu Tkinter.
Antworten
faridz
User
Beiträge: 2
Registriert: Freitag 30. Oktober 2009, 15:23

Mittwoch 4. November 2009, 14:04

Hallo, ich versuche eine Scrollbar für mein GUI einzubauen, es will aber nicht funktionieren:

scrollbar1 = Scrollbar(root)
scrollbar1.pack(side=RIGHT, fill=Y)

scrollbar2 = Scrollbar(root, orient=HORIZONTAL)
scrollbar2.pack(side=BOTTOM, fill=X)
.........
..........
scrollbar1.config()
scrollbar2.config()
mainloop()
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Mittwoch 4. November 2009, 14:52

WAS willst du denn scrollen? Ein Text-Widget? Listbox? Canvas?
Etwas mehr Code darf es schon sein. Und: Bitte Code-Tags verwenden!
faridz
User
Beiträge: 2
Registriert: Freitag 30. Oktober 2009, 15:23

Freitag 6. November 2009, 14:31

Danke
Ich will das ganze GUI-Programm Scrollen. das Programm besteht aus mehrere Checkboxes, Entries und Browse Widgets. Weiss nicht wie das in einem Listbox oder sonstiges hineinpasst.

from Tkinter import *
root = Tk()
import tkFileDialog

flip_vertically_sim_tk = IntVar()

from turtle import *
import turtle

scrollbar1 = Scrollbar(root)
scrollbar1.pack(side=RIGHT, fill=Y)

scrollbar2 = Scrollbar(root, orient=HORIZONTAL)
scrollbar2.pack(side=BOTTOM, fill=X)

experiment_only_tk = IntVar()
experiment_only_ev = IntVar()

checkb12 = Checkbutton(root,text = "experiment_only",variable = experiment_only_tk,offvalue=0,onvalue=1)

checkb12.bind('<Button-1>', click)
checkb12.pack(side=LEFT)
checkb12.place(x=150,y=40)

if experiment_only_tk.get() == 1:
experiment_only = True
experiment_only_ev == 0
else:
experiment_only = False
experiment_only_ev == 0

#if experiment_only_tk.get() == 1:
# experiment_only_ev == 0
#else:
# experiment_only_ev == 1

simulation_only_tk = IntVar()

checkb24 = Checkbutton(root,text = "simulation_only",variable = simulation_only_tk,offvalue=0,onvalue=1)
checkb24.bind('<Button-1>', click)
checkb24.pack(side=LEFT)
checkb24.place(x=750,y=40)

if simulation_only_tk == 1:
simulation_only = True
else:
simulation_only = False

........
scrollbar1.config()
mainloop()
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 6. November 2009, 15:46

numerix hat geschrieben:Bitte Code-Tags verwenden!
:evil:
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Samstag 7. November 2009, 19:48

faridz,
Du musst unbedingt Tags verwenden. Ansonsten wird man dir nicht helfen ;)

Zu deinem Code selbst:
- 'scrollbar1.config()' bringt dir überhaupt nichts. Es gibt die Konfiguration zurück, aber wenn du das nicht in einer Variable abspeicherst oder weiterverwendest, kannst du das weglassen. Willst du die Scrollbar konfigurieren, dann musst du auch die entsprechenden Parameter übergeben.

- Die obersten Zeilen deines Programms sollten immer erstmal den Importen gelten. NICHT: importieren, etwas anderes machen, wieder importieren.
Sondern es sollte bei dir eher so aussehen:

Code: Alles auswählen

from Tkinter import*
from turtle import*
import tkFileDialog
- Warum importierst du das Turtle-Modul einmal in den globalen Namensraum und ein anderes mal mit 'import turtle'!? Importiere ein Modul nur einmal.

- Alle Module sollten vorzugsweise ohne 'from ... import' importiert werden. Sonst kann es vorkommen, dass sich Klassen- und Funktionen überschneiden.

- Zur Problemlösung könntest du zum Beispiel einen Canvas bauen, in dem alle anderen Widgets untergebracht werden, und du dann den gesamten Canvas scrollst.

Grüße Markus :)
Antworten