【发布时间】:2018-01-08 04:51:45
【问题描述】:
我有一个程序可以从 CSV 文件中读取和写入信息并将其显示在主窗口中。我可以打开一个单独的窗口来输入数据,当正确输入一些数据时它会关闭。这是一个简单的版本:
import tkinter as tk
import csv, os
class main(object):
def __init__(self, master):
with open('filename.csv', 'r') as f:
#read data and display in main window
def newwindow(self):
#new window
class second_window(object):
def __init__(self, master):
#window stuff
def data_writer(self):
with open('filename.csv', 'r+') as f:
#do stuff
self.master.destroy()
root = tk.Tk()
app = main(root)
root.mainloop()
当输入数据时,它会更新 csv 文件并关闭第二个窗口,但主窗口显然没有刷新。我遇到了一些其他提供一些指示的线程,但没有一个适合我的情况,特别是因为这两个窗口是不同的类。如何使用更新的数据刷新主窗口?我可以在主窗口上调用self.master.destroy 并重新打开它,我该怎么做?任何帮助表示赞赏,谢谢。
【问题讨论】:
-
你的 with open 语句在类安装过程中只能发生一次。也许将 with open 语句移动到一个单独的方法,然后从第二个类调用该方法来更新主类。
标签: python class tkinter window refresh