0
是否有人知道如何調用一個線程的def表單。從線程調用def
時鐘程序:
import sys
from tkinter import *
from tkinter import messagebox
from tkinter import filedialog
from time import sleep
import threading
class MyThread (threading.Thread):
def mclock(): # function that it can't call
x = 1
z = 0
while x != -1:
Label(mGui,text = str(x) + "second(s)").pack()
x = x+1
sleep(1)
if x == 60:
x = 1
z = z+1
Label(mGui, text= str(z) + " minute(s) has past.").pack()
return
return
MyThread().start()
mGui = Tk()
mGui.geometry("300x200+100+100")
mGui.title("Jono's Clock")
menubar = Menu(mGui)
filemenu = Menu(menubar, tearoff = 0)
filemenu.add_command(label = "Clock",command = mclock) # can't use function
menubar.add_cascade(label = "File",menu = filemenu)
mGui.config(menu = menubar)
mGui.mainloop()
如果有任何人看到任何其他錯誤,請註明。我也使用Windows 7和Python 3.3。
這有助於我理解,但我不確定仍然是這樣,我已經把完整的代碼,而不是示例。 – Minigeek22
我想你想讓你的線程類的詞像我的代碼,然後讓你的菜單選項創建'線程'對象並啓動它。沒有內置的方法可以在另一個線程中運行一個函數,除非以該函數爲目標啓動一個新線程,或者使用一堆代碼在線程之間實現一個消息傳遞系統,該系統可以包含要運行的作業。 – Blckknght