尝试将变量 "data" 从 "on_select" 传递给文本小部件
Trying to pass the variable "data" from "on_select" to the Text-Widget
我正在尝试将变量 "data" 从 "on_select" 传递到 Text-Widget。这样,某人导入的文件的内容就可以通过选择列表框中的项目来更改。但是我还是一个非常初学者,不知道如何传递数据的价值。有人可以在这里帮助我吗?谢谢!
from Tkinter import *
import tkFileDialog
root=Tk()
data = "Bitte eine Datei importieren."
class View(Listbox):
def __init__(self, master):
Listbox.__init__(self, master, width=75, selectmode=SINGLE)
class Controller(object):
def __init__(self, master):
self._master = master
frame1 = Frame(self._master)
frame1.pack(side=LEFT, fill=BOTH, padx=5,expand=True)
self._Listbox=View(frame1)
self._Listbox.pack(side = TOP,fill=BOTH, expand = True,pady=20)
menubar = Menu(self._master)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Importieren", command = self.file_open)
filemenu.add_command(label="Beenden", command = quit)
menubar.add_cascade(label='File',menu=filemenu)
self._master.config(menu=menubar)
def on_select(event):
filename = self._Listbox.get(self._Listbox.curselection()[0])
global data
data = "Test"
with open(filename,'r') as f:
data = f.readlines()
print data
self._Listbox.bind('<<ListboxSelect>>', on_select)
def file_open(self):
filename = tkFileDialog.askopenfilename()
self._Listbox.insert(END,filename)
T = Text(root, height=2, width=30)
T.pack()
T.insert(END, data)
print data
if __name__ == "__main__":
c=Controller(root)
root.mainloop()
控制器需要了解文本小部件才能对其进行控制。因此,在创建控制器时传递文本小部件。
class Controller(object):
def __init__(self, master, text):
self.text = text
...
def on_select(self, event):
...
self.text.insert("end", data)
...
...
T = Text(...)
...
if __name__ == "__main__":
c=Controller(root, T)
我正在尝试将变量 "data" 从 "on_select" 传递到 Text-Widget。这样,某人导入的文件的内容就可以通过选择列表框中的项目来更改。但是我还是一个非常初学者,不知道如何传递数据的价值。有人可以在这里帮助我吗?谢谢!
from Tkinter import *
import tkFileDialog
root=Tk()
data = "Bitte eine Datei importieren."
class View(Listbox):
def __init__(self, master):
Listbox.__init__(self, master, width=75, selectmode=SINGLE)
class Controller(object):
def __init__(self, master):
self._master = master
frame1 = Frame(self._master)
frame1.pack(side=LEFT, fill=BOTH, padx=5,expand=True)
self._Listbox=View(frame1)
self._Listbox.pack(side = TOP,fill=BOTH, expand = True,pady=20)
menubar = Menu(self._master)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Importieren", command = self.file_open)
filemenu.add_command(label="Beenden", command = quit)
menubar.add_cascade(label='File',menu=filemenu)
self._master.config(menu=menubar)
def on_select(event):
filename = self._Listbox.get(self._Listbox.curselection()[0])
global data
data = "Test"
with open(filename,'r') as f:
data = f.readlines()
print data
self._Listbox.bind('<<ListboxSelect>>', on_select)
def file_open(self):
filename = tkFileDialog.askopenfilename()
self._Listbox.insert(END,filename)
T = Text(root, height=2, width=30)
T.pack()
T.insert(END, data)
print data
if __name__ == "__main__":
c=Controller(root)
root.mainloop()
控制器需要了解文本小部件才能对其进行控制。因此,在创建控制器时传递文本小部件。
class Controller(object):
def __init__(self, master, text):
self.text = text
...
def on_select(self, event):
...
self.text.insert("end", data)
...
...
T = Text(...)
...
if __name__ == "__main__":
c=Controller(root, T)