<p><strong>解决了。</strong>我做了一些事情来让您的代码按照您想要的规范工作:</p>
<ol>
<li>在printSecondLine()方法上方添加了@staticmethod。在</li>
<li>从printsecondaline()参数列表中删除了self。在</li>
<li>使printSecondLine()接受名为value的参数。在</li>
<li>删除并重新编写printSecondLine()方法的主体,使其按预期运行。在</li>
<li>在按钮配置中使用了lambda表达式,以便可以轻松传递数据。在</li>
<li>将tvar作为lambda表达式的参数,因为这是传递给printsecondaline()的参数</li>
<li>将tvar和进入代码放在按钮代码上方。换个顺序也许可以。但我认为最好把tvar放在上面,因为在你从按钮访问它之前先声明它。在</li>
</ol>
<p>不管怎样,它是有效的。在entry中输入数据,单击按钮,数据就会进入控制台。您可能需要编写代码,以便在单击按钮后清除输入字段。但这是另一个话题,不难做到。在</p>
<pre><code>from tkinter import *
class First(Frame):
def __init__(self,master):
super().__init__()
master.minsize(width=755, height=520)
master.maxsize(width=755, height=520)
Grid.config(self)
# Run all function in [First Class]
self.widget_size()
def widget_size(self):
# Define a small frame for it
self.main_inner_frame = LabelFrame(self,text="Tracing Method",height= 120,width =355)
self.main_inner_frame.grid(row= 0, column=0)
self.main_inner_frame.grid_propagate(0)
# Create a entry box for the user
# use a string variable tvar
tvar = StringVar()
self.traceEntry = Entry(self.main_inner_frame,textvariable=tvar,width=30)
self.traceEntry.grid(row = 0, column = 2, sticky = W)
# Create a button for it [When trace click it will show the text in the entry on terminal]
self.traceButton = Button(self.main_inner_frame, text="Trace",command=lambda: Second.printSecondLine(tvar))
self.traceButton.grid(row = 0, column = 1, sticky = W)
class Second(First):
@staticmethod
def __init__(self,master):
super().__init__(master)
@staticmethod
def printSecondLine(value):
print(value.get())
if __name__ == '__main__':
root = Tk()
root.title("Good System")
TIF = First(root)
root.mainloop()
</code></pre>