此尝试尝试从类One中的函数获取值,该函数在调用该函数时进行检索。然后,值[string1]将作为tkinter中第二类方法调用的参数传递,任何关于如何实现的想法
from tkinter import Tk, Label, Button
from tkinter import *
from tkinter.ttk import *
class One:
def __init__(self, master):
self.master = master
master.title("Test")
self.greet_button = Button(master, text="Test", command=self.do)
self.greet_button.pack()
def do(self):
...some action...
string1='test'
return string1
class Two:
def write(self, str):
...some action...
#tkinter 中的对象实例化
root = Tk()
p0 = One(root)
p0.do()
p1 = Two()
p1.write(string1)
root.mainloop()
##from tkinter import Tk, Label, Button
##
##from tkinter import *
##from tkinter.ttk import *
####why are you importing some and then everything?
import tkinter as tk
class Reader_Class(tk.Frame):
def __init__(self, master, writer_class):
tk.Frame.__init__(self,master)
self.master = master
master.title("Test")
self.writer = writer_class
self.greet_button = tk.Button(self, text="Test", command=self.do)
self.greet_button.pack()
def do(self):
string1='test'
self.writer.write(string1)
class Writer_Class(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self,master)
def write(self, test):
print(test)
root = tk.Tk()
writer = Writer_Class(root)
writer.pack()
reader = Reader_Class(root, writer)
reader.pack()
root.mainloop()
解释:
因此,首先,没有必要进口两次东西。
其次,您需要通过接口传递一个引用,因此您需要有引用。这就是为什么首先在writer_class上使用constructor是有意义的。
接下来,您将引用作为的参数提供给reader_class。
reader = Reader_Class(root, writer)
在reader_class中,使用语法self.
在local_scope中保留引用。
self.writer = writer_class
最后,使用该类的引用并调用该类的方法,在该方法中可以传递您选择的参数。
self.writer.write(string1)