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)应该如何表示啊 ? 在您的代码中,第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]