鱼C论坛

 找回密码
 立即注册
查看: 152|回复: 1

[已解决]Tkinter 函数中的参数如何带入到循环中?

[复制链接]
发表于 2024-8-13 09:39:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[i]["plate"],
                        foreground=m[i]["pigment"],
                        font="汉仪长艺体简 22 bold")
                t.place(x=100,y=m[i]["position"])
def Olympic_2(a,b,c):
        n=[150,230,310]
        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)  应该如何表示啊 ?
最佳答案
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[i],  # 这里要用 m[i] 获取每个奖牌的名字
                  foreground="gold" if m[i] == "金牌" else "silver" if m[i] == "银牌" else "brown",  # 根据奖牌颜色设置
                  font="汉仪长艺体简 22 bold")
        t.place(x=100, y=100 + i * 30)  # 让奖牌显示在不同的 y 坐标上

def Olympic_2(a, b, c):
    n = [a, b, c]  # 将参数存入列表
    labels = ['金牌', '银牌', '铜牌']  # 对应的奖牌名
    for i in range(len(n)):
        s = Button(root,
                   text=f"{labels[i]}: {n[i]}")  # 使用 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[i]}: {n[i]}" 来显示奖牌数量。

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[i],  # 这里要用 m[i] 获取每个奖牌的名字
                  foreground="gold" if m[i] == "金牌" else "silver" if m[i] == "银牌" else "brown",  # 根据奖牌颜色设置
                  font="汉仪长艺体简 22 bold")
        t.place(x=100, y=100 + i * 30)  # 让奖牌显示在不同的 y 坐标上

def Olympic_2(a, b, c):
    n = [a, b, c]  # 将参数存入列表
    labels = ['金牌', '银牌', '铜牌']  # 对应的奖牌名
    for i in range(len(n)):
        s = Button(root,
                   text=f"{labels[i]}: {n[i]}")  # 使用 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[i]}: {n[i]}" 来显示奖牌数量。

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 19:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表