【问题标题】:best way to use a for loop using tkinter?使用 tkinter 使用 for 循环的最佳方法?
【发布时间】:2021-10-07 20:31:21
【问题描述】:
def draw_cloud (canvas):
    right = 5
    left = 5 
    for i in cloud: 3
        canvas.create_oval(100,110,150, 175, outline = 'white', fill = 'white')
        left += 10
        right += 10

对于我的作业,我正在使用 tkinter 画布绘制场景并试图弄清楚如何使用 tkinter 使我的 for 循环工作,因为我的作业需要至少一个重复元素,该元素必须作为 for 循环重复

【问题讨论】:

  • 这里的目标是什么?看起来您只是在绘制相同的椭圆 3 次,这只会使它们重叠。另外,云中 for i 旁边的 3 是什么?什么是云,因为它没有被声明?
  • for i in cloud: 3 中的3 有什么意义?
  • 对于这个任务,我必须至少有一个重复元素,我试图根据我告诉它的数量创建一个循环到它创建一定数量的云的地方。我也为我令人困惑的代码道歉,我只是试图根据我的 TA 提供给我的信息来构建。我知道如何分别创建每个元素,但我只需要弄清楚如何让它循环
  • 如果我发布我的完整代码这样你们可以看到我想用这个做什么会更好吗?

标签: python loops tkinter


【解决方案1】:

在此示例中使用 for 循环可以在您的情况下以多种方式工作。

  1. 有一个位置列表并使用 for 循环遍历它们,并在那里创建一个云,例如:
cloud_positions = [(100,110,150,175),(130,140,160,195)]

for position in cloud_positions:
    canvas.create_oval(position[0],position[1],position[2],position[3],outline='white',fill='white')
  1. 使用 for 循环添加到变量:
left = 0

for i in range(5): #5 clouds created
    canvas.create_oval(100+left,110,150+left,175)
    left += 400 #next cloud is 400 to the right
  1. 使用迭代变量:
for i in range(5):
    canvas.create_oval(100+i*400,110,150+i*400,175)

您应该使用最适合您的问题的方法。如果您想精确控制云的位置,请使用第一个选项。如果您只想让所有云相互关联,请使用 2 或 3。

【讨论】:

  • 非常感谢@Notebooked 的帮助
猜你喜欢
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
相关资源
最近更新 更多