NameError:未使用tkinter python定义名称“win”

2024-10-02 12:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

执行此代码后,我发现错误win not found从不同的函数运行tkinter很重要,因为这是一个家庭作业

代码:

import tkinter as tk
from tkinter import *
def zui(kaj,saj):
    zun=kaj
    kaj=kaj+"=tk.Tk()"
    exec(kaj)
    saj=zun+".title('"+saj+"')"
    exec(saj)
def zabel(self,naj,iaj,oaj,baj,gaj,taj):
    spsp=self+"="+"Label("+naj+", text='"+iaj+"', bg='"+oaj+"', height="+gaj+", width="+taj+",fg='"+baj+"')"
    spsp=str(spsp)
    exec(spsp)
def zosition(qak,iak,nak):
    sspp=qak+".grid(row="+iak+", column="+nak+")"
    exec(sspp)
def zainzoop(tak):
    sft=tak+".mainloop()"
    exec(sft)
zui("win","zahid app")
zabel("label","win","hello world","white","black","4","10")
zosition("win","1","1")
zainzoop("win")

回溯:

Traceback (most recent call last):
  File "c:/PyProjects/Patient Data Entry/hello.py", line 20, in <module>
    zabel("label","win","hello world","white","black","4","10")
  File "c:/PyProjects/Patient Data Entry/hello.py", line 12, in zabel
    exec(spsp)
  File "<string>", line 1, in <module>
NameError: name 'win' is not defined

Tags: 代码inimporthellotkinterdeflinenot
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:11

这是一种非常奇怪的使用tkinter的方式,不管怎样,我该评判谁呢exec()使用globals()参数进行声明global。这就是执行官的样子:

exec(spsp,globals())
exec(sspp,globals())
exec(sft,globals())

最后,zosition()应该被称为:

zosition("label","1","1")

以防你对它通常的样子感到好奇:

import tkinter as tk

kaj = tk.Tk()
kaj.title('zahid app')

spsp = tk.Label(kaj,text='Hello World',bg='white',fg='black',height=4,width=10)
spsp.grid(row=1,column=1)

kaj.mainloop() #much easier right?

相关问题 更多 >

    热门问题