Моя программа использует кнопку из класса First для запуска функции в классе Second.Тем не менее, когда кнопка была нажата, мне нужно включить собственный аргумент, так как я могу вызвать другую функцию, используя предложенную здесь форму статического метода ( Python 3 Tkinter - Как вызвать функцию из другого класса ) или используя другой альтернативный способ решения этой проблемы.
Если вы можете подсказать мне, как использовать этот StringVar в классе Второй, мне будет легче, С уважением.
Единственная часть кода, которую я думаю, должна изменить:
self.traceButton=Button(self.main_inner_frame,text="Trace",command=Second.printSecondLine())
Код второго класса:
class Second(First):
# @staticmethod
def __init__(self,master):
super().__init__(master)
def printSecondLine(self):
content = self.traceEntry.get()
print(content)
Если вам нужноПолный код:
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()
#self.getTEXT()
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 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=Second.printSecondLine())
self.traceButton.grid(row = 0, column = 1, sticky = W)
# 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)
# def getTEXT(self):
# content = self.traceEntry.get()
# print(content)
class Second(First):
# @staticmethod
def __init__(self,master):
super().__init__(master)
def printSecondLine(self):
content = self.traceEntry.get()
print(content)
return content
if __name__ == '__main__':
root = Tk()
root.title("Good System")
TIF = First(root)
root.mainloop()
Ожидаемый результат Когда пользователь нажмет кнопку, запись получит текст и отобразится в терминале.