如何使用 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 中的条目的主要内容,如果未能解决你的问题,请参考以下文章

Python 3.8 Mutagen 不会读取 GEOB 标签

如何在 Python ttk 中的 Button 中对齐文本

python tkinter 如何将tk界面中标题栏中的tk红色字样去掉,或者换成其他的字

用python的Tkinter中的按钮,绑定的事件如何更改全局变量的问题

Python3 tkinter基础 Tk quit 点击按钮退出窗体

如何使用 Tkinter 按钮运行 Python 脚本?