如何从tkinter中的一个类函数中获取值



此尝试尝试从类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)

相关内容

最新更新