我在button1
中遇到了回调的Tkinter问题。当我单击button1
时,我希望调用SearchIP方法,但是收到此错误消息:
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1764, in __getattr__
return getattr(self.tk, attr)
AttributeError: SearchIP
这是我到目前为止的代码尝试:
from Tkinter import *
try:
# for Python2
import Tkinter as tk
import ScrolledText as tkst
except ImportError:
# for Python3
import tkinter as tk
import tkinter.scrolledtext as tkst
global Filename
root=tk.Tk()
frame = tk.Frame(root,width=100)
label=Label(root,text="http://")
label.grid(row=0,column=0)
entryVar =tk.StringVar()
entry=Entry(root,width=50,textvariable=entryVar)
entry.grid(row='0',column='1',columnspan=8)
root.button1 = Button(root,text="Search IP",command= root.SearchIP)
root.button1.grid(row=1,column=0)
button2=Button(root,text ="DNS Recon")
button2.grid(row=1,column=1)
button3=Button(root,text ="Port Scanner")
button3.grid(row=1,column=2)
button4=Button(root,text ="Web Crawl")
button4.grid(row=1,column=3)
button5=Button(root,text ="Email Gathering")
button5.grid(row=1,column=4)
frame.grid(row=2,column=0,columnspan=30,rowspan=30)
edit_space = tkst.ScrolledText(
master = frame,
wrap = 'word', # wrap text at full words only
width = 45, # characters
height = 10, # text lines
# background color of edit area
)
# the padx/pady space will form a frame
edit_space.pack(fill='both', expand=True, padx=8, pady=8)
root.title("E-Z Security Audting")
mytext = '''\
Man who drive like hell, bound to get there.
Man who run in front of car, get tired.
Man who run behind car, get exhausted.
Man who run in front of car, get tired.
Man who run behind car, get exhausted.
Man who drive like hell, bound to get there.
Man who run in front of car, get tired.
Man who run behind car, get exhausted.
'''
edit_space.insert('insert', mytext)
def SearchIP(root):
mytext="hello"
root.mainloop()
答案 0 :(得分:2)
SearchIP()
不属于tk
或root
,因此请使用command=SearchIP
并使用def SearchIP():
- 您不必将root
作为参数传递。
-
如果您需要将参数传递给SearchIP(some-argument)
,则必须使用command=lambda:SearchIP(passed-argument)
答案 1 :(得分:1)
在定义之前调用SearchIP()。错误信息只是说解释器在脚本中对该函数的调用更高时不知道SearchIP是什么。要解决此问题,请将SearchIP的定义置于通话之上,或将调用向下移至定义之下,或两者兼而有之。
答案 2 :(得分:1)
尝试使用command=SearchIP
并在调用root.button
之前定义SearchIP,但在调用root=to.Tk()
之后。并且当你使用按钮的commond参数时不要将参数传递给函数SearchIP,如果你需要传递参数使用lamda函数。希望这有帮助
答案 3 :(得分:0)
使用Command = SearchIP 并且您必须在按钮之前或导入之后放置此功能..