Jetzt aber eine Frage, die ins Tkinter Forum gehört.
Weiß jemand, ob es eine Option "unsichtbar" für Items eines Widgets gibt?
Würde gerne mit einem Checkbutton Teile einer Skizze aus- und einschalten können.
Grüße,
Sichtbarkeit von Items
Versuch doch mal, dich klarer auszudrücken ...4bit hat geschrieben:Jetzt aber eine Frage, die ins Tkinter Forum gehört.
Weiß jemand, ob es eine Option "unsichtbar" für Items eines Widgets gibt?
Würde gerne mit einem Checkbutton Teile einer Skizze aus- und einschalten können.
Grüße,
Falls es um ein Canvas geht, lautet die Antwort: Es gibt keine Option "unsichtbar", aber es gibt Möglichkeiten, so etwas faktisch zu implementieren.
Du könntest es für Canvas-Items so implementieren, dass du die Items aus der Sichtbaren Bereich verschiebst...
Oder ist sowas unsauber?
Oder ist sowas unsauber?
Unsauber IMHO nicht, aber nicht sonderlich elegant. Alternativen wären (wobei man über deren Eleganz auch verschiedener Ansicht sein kann ...):Birne94 hat geschrieben:Du könntest es für Canvas-Items so implementieren, dass du die Items aus der Sichtbaren Bereich verschiebst...
Oder ist sowas unsauber?
Farbe auf "transparent" setzen (wobei ich jetzt grad nicht auswendig weiß, ob das bei alle Zeichenmethoden auf einem Canvas geht - für Polygone geht es z.B.).
Ein Basis-Item als Hintergrund setzen (z.B. rectangle in Canvas-Größe) und zum Unsichtbarmachen die Item-Priorität unter die des Basis-Items setzen.
@4bit:
Meinst Du sowas?
Habe grad mal eben im 'Effbot' nachgeschaut...
yipyip
Meinst Du sowas?
Code: Alles auswählen
#!/usr/bin/env python
####
import Tkinter as tk
####
class Gui(object):
def __init__(self, width=400, height=400):
self.root = tk.Tk()
self.canvas = tk.Canvas(self.root, width=width, height=height, bg='white',
highlightthickness=None)
self.canvas.pack(fill=tk.BOTH, expand=True)
self.button = tk.Button(self.root, text='(In)Visible', command=self.showhide)
self.button.pack()
self.state = 1
self.item = self.canvas.create_rectangle(33, 33, 250, 250, fill='red')
def showhide(self):
self.state ^= 1
s = (tk.HIDDEN, tk.NORMAL)[self.state]
self.canvas.itemconfig(self.item, state=s)
def run(self):
self.root.mainloop()
####
if __name__ == '__main__':
Gui().run()
yipyip
Das kommt davon, wenn man sich mal auf den "Shipman" verlässt ...numerix hat geschrieben:Falls es um ein Canvas geht, lautet die Antwort: Es gibt keine Option "unsichtbar", aber es gibt Möglichkeiten, so etwas faktisch zu implementieren.
Also Korrektur Dank yipyip: Ja, es gibt eine Option unsichtbar.
Hallo wuf,
da braucht man keine archäologischen Fähigkeiten,
da muss man einfach nur die Canvas-Seite im Effbot
richtig lesen (und verstehen).
Ich gebe zu, ich schaue erst immer im Effbot nach, nur
wenn mir das nicht ausreicht nochmal nach 'New Mexico'.
Im letzteren scheinen auch weniger Tippfehler drin zu sein,
aber der erstere ist ja ein fast unerschöpflicher Fundus.
yipyip
da braucht man keine archäologischen Fähigkeiten,
da muss man einfach nur die Canvas-Seite im Effbot
richtig lesen (und verstehen).
Ich gebe zu, ich schaue erst immer im Effbot nach, nur
wenn mir das nicht ausreicht nochmal nach 'New Mexico'.
Im letzteren scheinen auch weniger Tippfehler drin zu sein,
aber der erstere ist ja ein fast unerschöpflicher Fundus.
yipyip