Ubuntu Linuxの11.04/Pythonの2.7/TkinterのはTkinterのが唯一のユニークなオブジェクト上の
仕事にpack_forgetましょう私は、PythonのGUIで初心者だと私はトラブル単一のオブジェクトが消え、再び現れる作りを抱えています。 pack_forgetは私のための仕事のようなものですが、私がやっているやり方では、一度に1つだけ必要なときに、すべてのオブジェクトを点滅させます。下の煮詰めた例では、オブジェクト "a"を表示して消してから、オブジェクト "b"に対して同じことをしようとしています。
私はどんなヘルプにも非常に感謝しています。また、これに関するいくつかの優れたドキュメントも素晴らしいです。私が見つけることができたものは、例の上で軽いものでした。
from Tkinter import *
import time
class Box:
def __init__(self, canvas):
self.canvas = canvas
def type(self, type):
if type == "1":
self.if = self.canvas.create_rectangle(0, 0, 50, 50, fill="red")
elif type == "2":
self.if = self.canvas.create_rectangle(50, 50, 100, 100, fill="blue")
def hide(self):
self.canvas.pack_forget()
self.canvas.update_idletasks()
root.update()
def unhide(self):
self.canvas.pack()
self.canvas.update_idletasks()
root.update()
root = Tk()
frame = Frame(root)
frame.pack()
canvas = Canvas(frame, width=500, height=200)
canvas.pack()
root.update()
a = Box(canvas)
a.type("1")
b = Box(canvas)
b.type("2")
a.unhide()
time.sleep(.5)
a.hide()
time.sleep(1)
b.unhide()
time.sleep(.5)
b.hide()
time.sleep(1)
グレートを!すべての提案は歓迎され、貪欲に取られました。 私はちょうど私自身の小さなプロジェクトでこれに私の歯を切っている。私の元のコードから 'update'を取り除くことは、実際に働いていた方法を打破することに注意してください。しかし、とにかく正しい方向に向かうようなものではありません。 もう一度お手数をおかけします。 –
偉大な答えをお祝いします。私はそれを複数回アップヴォートすることができたらいいと思う。 – jsbueno