我想从条目中获取一个值,但这不起作用



问题是:

return self.func(*args)
TypeError: b1_pg() missing 1 required positional argument: 'e1'

我搜索了整个谷歌,但我没有找到任何东西

from tkinter import *
from tkinter import ttk
from functools import partial
root = Tk()
root.geometry('400x200+100+200')
def b1_pg(e1):
search = str(e1.get())
print(search)
return search
what = ttk.Label(root, text="who do you want to search about???").grid(row=1, column=0)
e1 = ttk.Entry(root, width=40).grid(row=1, column=1)
b1 = ttk.Button(root, text="if you are ready prees here", command=b1_pg).grid(row=2, column=0)
#information=ttk.Label(root,text=family{search})
root.title('family')
root.mainloop()

我希望代码在我预处理按钮时从 E1(条目(中获取值,但它给了我一个错误

return self.func(*args)
TypeError: b1_pg() missing 1 required positional argument: 'e1'

我的代码出了什么问题?

这里有一些我们需要纠正的事情。

您使用的一个问题grid()与您定义"输入"字段的同一行。 因此,由于以这种方式分配grid()e1实际上将始终返回None

要解决此问题,您可以在新行上执行e1.grid(),这将允许您毫无问题地使用e1.get()

也就是说,让我们更正您的导入,因为*从某种意义上说,您最终会覆盖方法。

因此,与其这样做:

从 tkinter 进口 *

这样做:

import tkinter as tk

我们还应该更改您的函数中的一些内容。

return部分在这里不会做任何有用的事情。不能将值返回到调用函数的按钮。它不能以任何方式使用,因此您可以删除该行。如果您需要在某处使用该值,则可以将其从函数发送到需要它的任何位置。

与你的问题中的错误有关。不需要在函数中e1参数。您没有首先将参数传递给函数,因此这将导致错误。其次,您已经从全局命名空间调用了 e1.get((,因此不需要参数。

最后,您无需执行str(e1.get())get()方法已返回一个字符串。它将始终返回一个字符串。

请参阅下面的代码,如果您有任何问题,请告诉我:

import tkinter as tk
import tkinter.ttk as ttk
root = tk.Tk()
root.title('family')
root.geometry('400x200+100+200')

def b1_pg():
search = e1.get()
print(search)

ttk.Label(root, text="who do you want to search about???").grid(row=1, column=0)
e1 = ttk.Entry(root, width=40)
e1.grid(row=1, column=1)
ttk.Button(root, text="if you are ready press here", command=b1_pg).grid(row=2, column=0)
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新