鱼C论坛

 找回密码
 立即注册
查看: 1569|回复: 8

[已解决]跪求大佬! tkinter调用函数的问题

[复制链接]
发表于 2021-1-29 12:45:12 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 v.ki 于 2021-1-29 13:36 编辑

救救俺!
应该怎么改这个才能实现
QQ截图20210129124543.png


没看懂的小伙伴我举个简单的例子

举个简单的例子:
比如我们通常设置lable标签的属性是这样的:
Label_5.configure(bg = "#000080")

这里的bg是我们直接输入的,但是,我想通过函数来自己设置这个bg就得这样写
do (attr_name,attr_value):
   Lable5.configure(attr_name=attr_value)
do(bg,'#000000')


但是这时候在do函数里它把attr_name当场了属性值,也就是
Lable5.cinfigure(attr_name=#00000)
而不是
Lable5.cinfigure(bg=#00000)
这时候自然会报错:属性不存在
请问应该怎么改
最佳答案
2021-1-29 12:45:13
本帖最后由 qq1151985918 于 2021-1-29 14:43 编辑
v.ki 发表于 2021-1-29 13:49
这样就失去了我设置函数的意义,设置函数目的就是都可以用,下次我要是想设置paxd属性呢,还得再修改一下 ...

import tkinter as tk

root = tk.Tk()
root.title('Set')
root.geometry('200x200')

label = tk.Label(root, text = '测试标签属性')
label.pack()

label1 = tk.Label(root, text = '属性:')
label1.pack()

entry1 = tk.Entry(root)
entry1.pack()

label2 = tk.Label(root, text = '对应值:')
label2.pack()

entry2 = tk.Entry(root)
entry2.pack()

button = tk.Button(text='设置属性',command = lambda:exec(setlabel(entry1.get(),entry2.get())))
button.pack()

def setlabel(attr_name = "bg",attr_value = "yellow"):
   code = "label.config(%s='%s')"%(attr_name,attr_value)
   return code


root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 12:45:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qq1151985918 于 2021-1-29 14:43 编辑
v.ki 发表于 2021-1-29 13:49
这样就失去了我设置函数的意义,设置函数目的就是都可以用,下次我要是想设置paxd属性呢,还得再修改一下 ...

import tkinter as tk

root = tk.Tk()
root.title('Set')
root.geometry('200x200')

label = tk.Label(root, text = '测试标签属性')
label.pack()

label1 = tk.Label(root, text = '属性:')
label1.pack()

entry1 = tk.Entry(root)
entry1.pack()

label2 = tk.Label(root, text = '对应值:')
label2.pack()

entry2 = tk.Entry(root)
entry2.pack()

button = tk.Button(text='设置属性',command = lambda:exec(setlabel(entry1.get(),entry2.get())))
button.pack()

def setlabel(attr_name = "bg",attr_value = "yellow"):
   code = "label.config(%s='%s')"%(attr_name,attr_value)
   return code


root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 13:00:33 From FishC Mobile | 显示全部楼层
你得有控件啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 13:13:51 From FishC Mobile | 显示全部楼层
你的这段代码是什么意思a,
没看懂……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-29 13:34:53 | 显示全部楼层
_2_ 发表于 2021-1-29 13:13
你的这段代码是什么意思a,
没看懂……

举个简单的例子:
比如我们通常设置lable标签的属性是这样的:
Label_5.configure(bg = "#000080")
这里的bg是我们直接输入的,但是,我想通过函数来自己设置这个bg就得这样写
do (attr_name,attr_value):
   Lable5.configure(attr_name=attr_value)
do(bg,'#000000')
但是这时候在do函数里它把attr_name当场了属性值,也就是
Lable5.cinfigure(attr_name=#00000)
而不是bg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 13:40:02 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-1-29 13:41 编辑
def do(attr_value):
   Lable5.configure(bg = attr_value)
do(attr_value = '#000000')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-29 13:49:43 | 显示全部楼层

这样就失去了我设置函数的意义,设置函数目的就是都可以用,下次我要是想设置paxd属性呢,还得再修改一下do函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-1-29 14:00:22 | 显示全部楼层
本帖最后由 qq1151985918 于 2021-1-29 14:21 编辑

看下一个回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-29 14:34:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 16:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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