gpt4 book ai didi

python - 单击按钮后在同一 GUI 中显示标签

转载 作者:行者123 更新时间:2023-12-01 04:54:57 25 4
gpt4 key购买 nike

我正在尝试编写一个程序,仅在单击同一 GUI 中的按钮 'CLICK' 后,才能在 GUI 中显示标签 'HI'

我的代码:

import Tkinter as tki
class App(object):
def __init__(self,root):
self.root = root

txt_frm = tki.Frame(self.root, width=900, height=900)
txt_frm.pack(fill="both", expand=True)
button3 = tki.Button(txt_frm,text="CLICK", command = self.retrieve_inpu)
button3.grid(column=0,row=2)


def retrieve_inpu(self):

label = tki.Label(txt_frm,text='HI')
label.grid(column=0,row=3)
root = tki.Tk()
app = App(root)
root.mainloop()

但我收到错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "C:/Python27/teste.py", line 14, in retrieve_inpu
label = tki.Label(txt_frm,text='HI')
NameError: global name 'txt_frm' is not defined

请帮助我在单击按钮'CLICK'后在同一 GUI 中显示标签'HI'

最佳答案

txt_frm 当前位于 __init__ 方法的本地。换句话说,无法从 __init__ 外部访问它。这意味着当您在 retrieve_inpu 中使用它时,Python 将无法找到该名称,因此会引发 NameError

您可以通过简单地创建 txt_frmApp 的实例属性来解决此问题:

self.txt_frm = tki.Frame(self.root, width=900, height=900)
self.txt_frm.pack(fill="both", expand=True)

现在,txt_frm 可以通过 self 访问,这意味着您可以在 retrieve_inpu 中使用它:

label = tki.Label(self.txt_frm,text='HI')

关于python - 单击按钮后在同一 GUI 中显示标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27648795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com