Tag: tkinter

什么是Tkintervariables跟踪方法callback的参数?

Python有Tkintervariables类StringVar() , BooleanVar()等类。这些都共享get() , set(string)和trace(mode, callback) 。 作为trace(mode, callback)的第二个parameter passing的callback函数传递了四个参数self, n, m, x 。 对于BooleanVar()的例子来说,它们看起来是'', 'PYVAR0', 'w' 。 第三个参数x似乎是触发跟踪的模式,在我的情况下,variables被改变了。 但是,第一个variables是什么,似乎是一个空string? 第二,如果我不得不猜测,我会说变数的内部名称?

当一个Tkinter列表框select被改变时得到一个callback?

当Tkinter中的Text或Entry小部件发生变化时,有许多方法可以获得callback,但是我还没有findListbox的一个方法(这对我所能find的大部分事件文档都没有帮助) 。 有什么办法为此产生一个事件吗?

Tkinter理解mainloop

直到现在,我用tk.mainloop()来结束我的Tkiter程序,否则什么都不会显示! 看例子: from Tkinter import * import random import time tk = Tk() tk.title = "Game" tk.resizable(0,0) tk.wm_attributes("-topmost", 1) canvas = Canvas(tk, width=500, height=400, bd=0, highlightthickness=0) canvas.pack() class Ball: def __init__(self, canvas, color): self.canvas = canvas self.id = canvas.create_oval(10, 10, 25, 25, fill=color) self.canvas.move(self.id, 245, 100) def draw(self): pass ball = Ball(canvas, "red") tk.mainloop() 然而,当试图在这个程序中的下一步(使球运动时间),这本书正在阅读,说要做到以下几点。 […]

Python time.sleep

我试图在等待5秒后删除文本框内的文本,而不是程序不会运行,并确实睡眠一切。 也有一种方法让我只是让我的文本框睡觉,所以我可以运行其他代码,而文本被冻结? from time import time, sleep from Tkinter import * def empty_textbox(): textbox.insert(END, 'This is a test') sleep(5) textbox.delete("1.0", END) root = Tk() frame = Frame(root, width=300, height=100) textbox = Text(frame) frame.pack_propagate(0) frame.pack() textbox.pack() empty_textbox() root.mainloop()

绘制代码来移动椭圆

我正在为一所大学的Python跳棋游戏工作。 我使用tk绘制了棋盘,但似乎无法实现棋子的移动function。 如果有人在我的代码中看到任何错误,或者可以提供帮助,我将不胜感激。 这是完整的来源。 提前致谢。 我知道这会吸引棋子。 我不知道如何重绘这些作品,而不删除其他作品。 我在网上查看移动function,并尝试了简单的testing工作,但我还没有能够在我的代码中使用它。 我知道recursion,但是,我需要基本的function来工作,即实际上移动一块在屏幕上,然后再执行其他function。 lst2 = [] #counter variable i=0 #board variable is what stores the X/O/- values. # It's a 2D list. We iterate over it, looking to see # if there is a value that is X or O. If so, we draw # text to the screen […]

如何从Tkinter Text Box Widget获得input?

如何从Python 2.7.3中的文本框中获取Tkinterinput? 编辑 我问了这个问题,以帮助其他同样的问题 – 这就是没有示例代码的原因。 这个问题困扰了我几个小时,我用这个问题来教别人。 请不要评价它是一个真正的问题 – 答案是重要的。

在Tkinter帆布移动球

这是一个非常基本的程序,我想要做两个移动的球,但其中只有一个实际上移动。 我也尝试了一些变化,但不能得到第二个球移动; 另一个相关的问题 – 有些人使用move(object)方法来实现这一点,而其他人做一个delete(object) ,然后重绘它。 我应该使用哪一个,为什么? 这是我的代码,只是animation/移动一个球: from Tkinter import * class Ball: def __init__(self, canvas, x1, y1, x2, y2): self.x1 = x1 self.y1 = y1 self.x2 = x2 self.y2 = y2 self.canvas = canvas self.ball = canvas.create_oval(self.x1, self.y1, self.x2, self.y2, fill="red") def move_ball(self): while True: self.canvas.move(self.ball, 2, 1) self.canvas.after(20) self.canvas.update() # initialize root […]

如何在Python中定期运行一个函数

我有一个简单的节拍器运行,由于某种原因,当它在一个较低的Bpm是好的,但在更高的BPM它是不一致的,并不稳定。 我不知道发生了什么事。 我想尝试使用某些东西来定期运行它。 有没有办法做到这一点? 这是我的代码: class thalam(): def __init__(self,root,e): self.lag=0.2 self.root=root self.count=0 self.thread=threading.Thread(target=self.play) self.thread.daemon=True self.tempo=60.0/120 self.e=e self.pause=False self.tick=open("tick.wav","rb").read() self.count=0 self.next_call = time.time() def play(self): if self.pause: return winsound.PlaySound(self.tick,winsound.SND_MEMORY) self.count+=1 if self.count==990: self.thread=threading.Thread(target=self.play) self.thread.daemon=True self.thread.start() return self.next_call+=self.tempo new=threading.Timer(self.next_call-time.time(),self.play) new.daemon=True new.start() def stop(self): self.pause=True winsound.PlaySound(None,winsound.SND_ASYNC) def start(self): self.pause=False def settempo(self,a): self.tempo=a class Metronome(Frame): def __init__(self,root): Frame.__init__(self,root) self.first=True […]

Tkinter:如何使用线程来防止主要事件循环“冻结”

我有一个“开始”button和一个进度条小GUItesting。 期望的行为是: 点击开始 进度条振荡5秒钟 进度条停止 观察到的行为是“开始”button冻结5秒,然后显示一个进度条(不振荡)。 这是我的代码到目前为止: class GUI: def __init__(self, master): self.master = master self.test_button = Button(self.master, command=self.tb_click) self.test_button.configure( text="Start", background="Grey", padx=50 ) self.test_button.pack(side=TOP) def progress(self): self.prog_bar = ttk.Progressbar( self.master, orient="horizontal", length=200, mode="indeterminate" ) self.prog_bar.pack(side=TOP) def tb_click(self): self.progress() self.prog_bar.start() # Simulate long running process t = threading.Thread(target=time.sleep, args=(5,)) t.start() t.join() self.prog_bar.stop() root = Tk() […]

Tkinter:“Python可能没有configuration为Tk”

今天我想开始与Tkinter合作,但是我有一些问题。 Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from tkinter import * Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module> import _tkinter # If this fails your Python may not be configured […]