【发布时间】:2015-12-16 12:28:41
【问题描述】:
下面是我的代码,它可以运行,但我不知道如何让“运行文本”按钮提示我在新窗口中打开文本文件,目前出现一个带有“退出”按钮的新窗口,没有别的.
import tkFileDialog
import Tkinter as tk
from Tkinter import *
import logging
logging.basicConfig(filename= "log_file.txt", filemode = "w", level=logging.DEBUG, format='%(asctime)s %(message)s', datefmt='%d/%m/%Y %I:%M:%S %p')
logging.warning('is when this event was logged.')
class HomeScreen:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.button1 = tk.Button(self.frame, text = 'Run Text', width = 25, command = self.new_window)
self.button1.pack()
self.frame.pack()
def openFile(self):
openfile = tkFileDialog.askopenfile().read()
text= open(openfile, 'r').read()
T.insert(1.0, openfile)
T = Text(height=10, width=100)
T.pack()
T.insert(END, "Select file to input")
B = Button(root, text="Open", command=openFile)
B.pack()
mainloop()
return
def new_window(self):
self.newWindow = tk.Toplevel(self.master)
self.app = Quit(self.newWindow)
class Quit:
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.quitButton = tk.Button(self.frame, text = 'Quit', width = 25, command = self.close_windows)
self.quitButton.pack()
self.frame.pack()
def close_windows(self):
self.master.destroy()
def main():
root = tk.Tk()
app = HomeScreen(root)
app = Quit(root)
root.mainloop()
if __name__ == '__main__':
main()
我确定我的代码非常混乱,因为我只是一个初学者,有些部分可能不需要,任何建议将不胜感激。
【问题讨论】:
-
你的意图不正确
-
在创建
newWindow之前在new_window()中使用self.openFile()或将self.openFile()移动到Quit类并在Quit.__init__中使用它,如果您在Quit窗口中需要此文本文件. -
顺便说一句:程序只需要一个
mainloop
标签: python user-interface input tkinter text-files