import time
from tkinter import *
from tkinter.ttk import *
window = Tk()
e = Entry(window, width=100)
e.pack()
player2 = ""
def get_text():
e.config(state='disabled')
player2 = e.get()
return player2
Button(window, text="done", command=get_text).pack()
t = 60
for x in range(t):
t = t -1
time.sleep(1)
if t == 0:
Label(window, text="Times up").pack()
e.config(state='disabled')
player2 = e.get()
Label(window, text=player2).pack()
window.mainloop()
這是我的代碼,但它并沒有真正起作用。我想創建一個條目,讓用戶只輸入一分鐘的單詞,除非按下完成按鈕,否則條目值存盤在名為 player2 的變數中。
uj5u.com熱心網友回復:
看看PEP8。要解決您的問題,您需要使用tkinter的after方法,不鼓勵其他所有方法。另請參閱為什么需要將構造與幾何方法分開。還有為什么要避免通配符匯入。
from tkinter import *
def get_text():
e.config(state='disabled')
my_label.configure(text=e.get())
def after_time():
my_label.configure(text="Times up")#configure instead of new
e.config(state='disabled')
window = Tk()
e = Entry(window, width=100)
e.pack()
my_button = Button(window, text="done", command=get_text)
my_button.pack()
my_label = Label(window, text='..waiting for username..') #seperate construction from geometry
my_label.pack()
window.after(1000, after_time) #after(ms,function)
window.mainloop()
uj5u.com熱心網友回復:
以下代碼將在一分鐘內禁用輸入欄位:
from threading import Timer
def disable():
Label(window, text="Times up").pack()
e.config(state='disabled')
player2 = e.get()
Timer(60,disable).start()
也不要在 get_text() 函式中回傳 player2 不會做任何事情。您不會在函式外部更改變數。您應該保存標簽并用于config設定其文本。
uj5u.com熱心網友回復:
為了做同樣的事情,稍微修改了你的代碼,希望這是你的目標。
import threading
from tkinter import *
from tkinter.ttk import *
window = Tk()
e = Entry(window, width=100)
e.pack()
player2 = ""
def get_text():
e.config(state='disabled')
global player2
player2 = e.get()
return player2
Button(window, text="done", command=get_text).pack()
def logic():
global player2
Label(window, text="Times up").pack()
e.config(state='disabled')
player2 = e.get()
threading.Timer(60.0, logic).start()
Label(window, text=player2).pack()
window.mainloop()
uj5u.com熱心網友回復:
您可以使用 Tk().after
root = Tk()
root.after(1000, function)
# 1000 = 1 Second
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357571.html
