如何使用 Python 3.8 中的按钮读取 Tkinter 中的条目

Posted

技术标签:

【中文标题】如何使用 Python 3.8 中的按钮读取 Tkinter 中的条目【英文标题】:How to read an Entry in Tkinter using a button in Python 3.8 【发布时间】:2021-08-24 18:45:02 【问题描述】:

我正在学习使用 Python 中的类,我希望您帮助我更正以下代码,我的目标是使按钮工作并阅读我在条目中输入的内容:

from tkinter import *

class Ventana:

    def __init__(self):
        self.raiz= Tk()
        self.raiz.title('Central block')
        self.raiz.geometry('900x530')
        self.raiz.config(bg='black')
        self.label2= Label(text='Central Block',fg='blue',
                       bg='black',font=('Arial Black',18))
        self.label2.place(x=270,y=20)

    def accion():
        pass

        self.raiz.mainloop()


class Butt:
    def __init__(self,image,x,y,click):
        self.x= x
        self.y= y
        self.click= click
        
        Button(image=image,bg='black',relief='flat',
               borderwidth=0,activebackground='black',
               command= self.click, 
               cursor='hand2').place(x=self.x,y=self.y)

    def click():
        intro= Entry.get()
    
class Entries:
    def __init__(self,state,widt,x4,y4,textvar):
        self.state= state
        self.widt= widt
        self.x4= x4
        self.y4= y4
        self.textvar= textvar
        Entry(state=self.state,
              width=self.widt,
              textvariable=self.textvar).place(x=self.x4,
                                               y=self.y4)


ventana= Ventana()

entrada= StringVar()
texto= Entries('normal',7,70,365,entrada)

but8= PhotoImage(file='b2b.png')
boton8= Butt(but8,170,340,Butt.click)

在条目中写入内容并单击按钮后,上面会产生以下错误。我想在条目中写一些东西,当按下 Python 按钮时,它会获取该条目的值。:

>>>Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\X\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
    return self.func(*args)
  File "C:/Users/X/test.py", line 32, in click
    intro= Entry.get()
TypeError: get() missing 1 required positional argument: 'self'

【问题讨论】:

使用entrada.get() 而不是Entry.get() 噗!!非常感谢。我花了几个小时试图弄清楚这一点,这很愚蠢。请发布答案以评价自己。非常感谢@TheLizzard 【参考方案1】:

Entry 是一个类而不是对象,所以当你调用Entry.get() 时,它会引发错误。而是使用entrada.get()

【讨论】:

以上是关于如何使用 Python 3.8 中的按钮读取 Tkinter 中的条目的主要内容,如果未能解决你的问题,请参考以下文章