我正在写一个程序,点击一个按钮就可以让用户打开一个文本文件。然后,还应该将文本文件的内容打印到按钮父窗口中的标签框中。当我尝试这样做时,我得到一个错误:NameError:name'LabelFrame'未定义。是否可以编辑不在同一功能中的标签框
编辑: 下面是一段代码。间隔可能有点短,对不起
import tkinter as tk
from tkinter import *
from tkinter import filedialog
def PerformTestScreen():
performTestScreen = Toplevel(window)
performTestScreen.geometry("400x225+10+560")
performTestScreen.title("Perform Test")
loadProg = Button(performTestScreen, text="Load Test", command=openPrevTest).grid(row = 0, column= 0, pady=10,padx=10, ipadx=30)
paramFrame = LabelFrame(performTestScreen, text="Parameters",padx=15, pady=30)
paramFrame.grid(row=1,column=0, pady=10, padx=10)
test = Label(paramFrame, text = "this is a test label").grid(row=0, column=0)
def openPrevTest():
fileName = filedialog.askopenfilename(filetypes = (("txt files", "*.txt"),("All Files", "*.*")))
print(fileName)
data = open(fileName).read()
print(data) # prints contents of text file to terminal
printParam = Label(performTestScreen.paramFrame, text=data)
printParam.grid(row=2,column=0)
window=tk.Tk()
btn=Button(window, text="Perform Test", command = PerformTestScreen).grid(row=1, column=1, pady=20, padx=20, ipadx=30)
window.title('Entry Screen')
window.geometry("400x160+10+10")
window.mainloop()
你需要在这里纠正一些事情
你的压痕不好。我看到5个空格而不是4个
您拥有属于函数内部但不属于函数外部的代码行。在将代码移到问题时可能是一个错误,但现在它是一个问题
您需要将labelFrame传递给第二个函数才能使用它。除非将顶层窗口变量定义为全局变量,否则不能在创建它的函数之外简单地调用它
不要同时使用
from tkinter import *
和import tkinter as tk
。我认为最好的方法就是使用import tkinter as tk
,因为这有助于防止错误地覆盖任何方法最后,我重写了一些名称和固定间距,以遵循PEP8样式指南,从而获得更清晰的代码
这里是你的代码清理了一点与所需的更正
如果你有任何问题,请告诉我
相关问题 更多 >
编程相关推荐