dragov 发表于 2024-8-13 09:39:57

Tkinter 函数中的参数如何带入到循环中?

from tkinter import *
root=Tk()
root.geometry("506x467")
root.option_add("*background","lavenderblush")
root.config(background="floralwhite")
gyl=Label(root,
          text="第33届夏季奥林匹克运动会\n中国奖牌榜",
          foreground="navy",
          font="汉仪书魂体简 28 bold")
gyl.place(x=20,y=20)
def Olympic_1():
      m=[{"plate":"金牌:","position":"150","pigment":"red"},
         {"plate":"银牌:","position":"230","pigment":"fuchsia"},
         {"plate":"铜牌:","position":"310","pigment":"gold"}]
      for i in range(len(m)) :
                t=Label(root,
                        text=m["plate"],
                        foreground=m["pigment"],
                        font="汉仪长艺体简 22 bold")
                t.place(x=100,y=m["position"])
def Olympic_2(a,b,c):
      n=
      for i in n:
                s=Button(root,
                         text=Olympic_2(a,b,c))
                s.place(x=200,y=i)
Olympic_1()
Olympic_2(40,27,24)
mainloop()

第25行的 text=Olympic_2(a,b,c)应该如何表示啊 ?

FishC 发表于 2024-8-13 09:41:08

在您的代码中,第25行的 `text=Olympic_2(a,b,c)` 似乎有些问题,因为您希望按钮的文本显示一些内容,而不是调用函数本身。我们需要传入相应的值,然后将其转换为字符串格式。

让我们一步一步地修改一下这个部分,同时也解决参数如何在循环中使用的问题。首先,我们假设 `m` 和 `n` 是某些可迭代对象,以便我们可以在循环中使用,下面是一个简单的示例:

from tkinter import *

root = Tk()
root.geometry("506x467")
root.option_add("*background", "lavenderblush")
root.config(background="floralwhite")

gyl = Label(root,
            text="第33届夏季奥林匹克运动会\n中国奖牌榜",
            foreground="navy",
            font="汉仪书魂体简 28 bold")
gyl.place(x=20, y=20)

def Olympic_1():
    m = ["金牌", "银牌", "铜牌"]# 假设我们有三种奖牌
    for i in range(len(m)):
      t = Label(root,
                  text=m,# 这里要用 m 获取每个奖牌的名字
                  foreground="gold" if m == "金牌" else "silver" if m == "银牌" else "brown",# 根据奖牌颜色设置
                  font="汉仪长艺体简 22 bold")
      t.place(x=100, y=100 + i * 30)# 让奖牌显示在不同的 y 坐标上

def Olympic_2(a, b, c):
    n = # 将参数存入列表
    labels = ['金牌', '银牌', '铜牌']# 对应的奖牌名
    for i in range(len(n)):
      s = Button(root,
                   text=f"{labels}: {n}")# 使用 f-string 格式化字符串
      s.place(x=200, y=100 + i * 30)# 让按钮显示在不同的 y 坐标上

Olympic_1()
Olympic_2(40, 27, 24)

mainloop()

这段代码里我们做了以下几个事情:

1. 在 `Olympic_1()` 函数中,我们假设有三个奖牌(金、银、铜),并通过循环展示它们。
2. 在 `Olympic_2(a, b, c)` 函数中,我们创建了一个列表 `n`,它包含了传入的参数,并通过循环创建了按钮。按钮的文本采用了格式化字符串 f"{labels}: {n}" 来显示奖牌数量。

这样不仅能够将函数的参数带入循环中,还能让界面看起来更加整洁和美观!如果你有更多问题或者想让你的界面更炫酷,都可以问我哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: Tkinter 函数中的参数如何带入到循环中?