我目前正在做的一個學校專案有問題。我必須從圓形剪報中創建和洗掉半圓。是否有可能的解決方案將 Tkinter 視窗分成三部分(頁眉、正文和頁腳)?
import tkinter
import threading
from tkinter import *
import tkinter as tk
root = tkinter.Tk()
root.geometry("800x800")
root.resizable(0, 0)
def menjajKanvas(c,arc): # changeCanvas
s=0
while True:
c.itemconfig(arc,extent=s,fill="red")
s =1
time.sleep(0.01)
c = tk.Canvas(root, height=250, width=300, bg="blue")
c.pack()
arc = c.create_arc(10,50,240,210, extent=150, outline="red", tags=("arc",))\
threading.Thread(target=menjajKanvas,args=(c,arc)).start()
root.mainloop()
uj5u.com熱心網友回復:
為了達到你想要的,你應該使用after(ms,function,*arguments)方法。您可以使用 中斷回圈,after_cancel(alarm_id)也可以停止呼叫自身內部的函式if,如下面的示例所示。
此外:
- 只匯入一次模塊并堅持下去
- 不要觸摸tkinters 主回圈執行緒之外的小部件
import tkinter as tk
root = tk.Tk()
root.geometry("800x800")
root.resizable(0, 0)
s = 0
def menjajKanvas(arc):
global s
if s < 180:
s =1
c.itemconfig(arc,extent=s,fill="red")
root.after(10,menjajKanvas,arc)
else:
shrink_arc(arc)
def shrink_arc(arc):
global s
if s >= 0:
s-=1
c.itemconfig(arc,extent=s,fill="red")
root.after(10,shrink_arc,arc)
else:
root.after(10,menjajKanvas,arc)
c = tk.Canvas(root, height=250, width=300, bg="blue")
c.pack()
arc = c.create_arc(10,50,240,210,
extent=150,
outline="red",
fill='red',
tags=("arc",))
menjajKanvas(arc)
root.mainloop()
uj5u.com熱心網友回復:
Tkinter 不支持執行緒,因為只有一個執行緒(通常是主執行緒)可以在多執行緒應用程式中訪問它。通常可以通過使用小部件
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357570.html
上一篇:對齊按鈕中的文本
