如何解决全局变量未定义?无法获取标签以显示函数中的全局变量
这是我正在学习的一个小程序,它是一个NPC特性生成器,可以从文本文件中生成随机单词。
我的随机生成器可以工作,但是无法使其正确显示在标签中。我目前已将pertrait设置为global,但似乎没有选择要在标签中显示的变量?我尝试设置StringVar,但似乎也无法正常工作。
import tkinter as tk
from tkinter import font
# Random Personality generation from text list
def gen():
global pertrait
pertrait = print(random.choice(open(
'F:\\Desktop\\python\\RandomGenerator py\\CharTraitList.txt').read(
).split()).strip())
root = tk.Tk()
root.title("NPC Trait Generator")
root.geometry("500x200")
frame = tk.Frame(root)
frame.pack()
# define font
fontStyle = font.Font(family='Courier',size=44,weight='bold')
# background image variable and import
paper = tk.PhotoImage(
file='F:\\Desktop\\python\\RandomGenerator py\\papbckGrd.png')
butQuit = tk.Button(frame,text="Quit",fg="red",command=quit)
butQuit.pack(side=tk.LEFT)
ButGen = tk.Button(frame,text="Generate",command=gen)
ButGen.pack(side=tk.RIGHT)
# Label generation
Trait1 = tk.Label(root,compound=tk.CENTER,text=pertrait,font=fontStyle)
# image=paper) .pack(side="right")
Trait1.pack()
root.mainloop()
解决方法
print()
没有返回值,而您忽略了致电gen()
!
更改:
pertrait = print(random.choice(open(
'F:\\Desktop\\python\\RandomGenerator py\\CharTraitList.txt').read(
).split()).strip())
收件人:
pertrait = random.choice(open(
'F:\\Desktop\\python\\RandomGenerator py\\CharTraitList.txt').read(
).split()).strip()
但是实际上最好避免使用全局方法-使gen()
返回值并为gen()
或pertrait
分配结果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。