Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使文本在tkinter画布中无张力地收缩和扩展_Python_Canvas_Tkinter_Tkinter Canvas - Fatal编程技术网

Python 使文本在tkinter画布中无张力地收缩和扩展

Python 使文本在tkinter画布中无张力地收缩和扩展,python,canvas,tkinter,tkinter-canvas,Python,Canvas,Tkinter,Tkinter Canvas,基本上,我想制作一个程序,在cavas中创建一个大小为1的文本,旋转180度(连续),然后将其扩展到最大大小(比如50),然后继续旋转,当它旋转到最大时,它会再次缩小到1,然后重复这个过程 这是我想到的唯一一个想法,请记住,我只是在Python上混了一两周,所以代码可能需要完全更改 from tkinter import * import time import random size=1 angl=0 i=0 canvas=Canvas(width=600, height=600) can

基本上,我想制作一个程序,在cavas中创建一个大小为1的文本,旋转180度(连续),然后将其扩展到最大大小(比如50),然后继续旋转,当它旋转到最大时,它会再次缩小到1,然后重复这个过程

这是我想到的唯一一个想法,请记住,我只是在Python上混了一两周,所以代码可能需要完全更改

from tkinter import *
import time
import random

size=1
angl=0
i=0

canvas=Canvas(width=600, height=600)
canvas.pack()

while i<180:
    canvas.delete("all")
    canvas.create_text(150,150, text="kappa123",angle=angl,font=("helvetica",size))
    angl+=1
    size+=1
    i+=1
    canvas.update()
    time.sleep(1/360)

while i>=180:
    canvas.delete("all")
    canvas.create_text(150,150, text="kappa123",angle=angl,font=("helvetica",size))
    angl+=1
    size-=1
    i+=1
    canvas.update()
    time.sleep(1/360)
从tkinter导入*
导入时间
随机输入
尺寸=1
盎格鲁=0
i=0
画布=画布(宽度=600,高度=600)
canvas.pack()
当i=180时:
canvas.delete(“全部”)
canvas.create_text(150150,text=“kappa123”,angle=angl,font=(“helvetica”,size))
盎格鲁+=1
尺寸-=1
i+=1
canvas.update()
时间。睡眠(1/360)

正如您所见,它只工作一次,然后永远扩展。

我相信这是因为您没有离开第二个循环。你的i变量移到无穷大。要查看示例,请运行此命令并查看输出:

from tkinter import *
import time
j = 0   # Time spent in the first while loop
k = 0   # Time spent in the second while loop
size = 1
angl = 0
i = 0

canvas = Canvas(width=600, height=600)
canvas.pack()

while i < 180:
    canvas.delete("all")
    canvas.create_text(150, 150, text="kappa123", angle=angl, font=("helvetica", size))
    angl += 1
    size += 1
    i += 1
    j += 1
    print('First loop', j)
    canvas.update()
    time.sleep(1 / 360)

while i >= 180:
    canvas.delete("all")
    canvas.create_text(150, 150, text="kappa123", angle=angl, font=("helvetica", size))
    angl += 1
    size -= 1
    i += 1

    k += 1
    print('Second loop', k)
    canvas.update()
    time.sleep(1 / 360)

我相信这是因为你没有离开第二圈。你的i变量移到无穷大。要查看示例,请运行此命令并查看输出:

from tkinter import *
import time
j = 0   # Time spent in the first while loop
k = 0   # Time spent in the second while loop
size = 1
angl = 0
i = 0

canvas = Canvas(width=600, height=600)
canvas.pack()

while i < 180:
    canvas.delete("all")
    canvas.create_text(150, 150, text="kappa123", angle=angl, font=("helvetica", size))
    angl += 1
    size += 1
    i += 1
    j += 1
    print('First loop', j)
    canvas.update()
    time.sleep(1 / 360)

while i >= 180:
    canvas.delete("all")
    canvas.create_text(150, 150, text="kappa123", angle=angl, font=("helvetica", size))
    angl += 1
    size -= 1
    i += 1

    k += 1
    print('Second loop', k)
    canvas.update()
    time.sleep(1 / 360)

哦,我知道问题出在哪里了。我已经知道如何定义函数了,你会怎么做呢?哦,我知道问题出在哪里了。我已经知道如何定义函数了,你会怎么做呢?