У меня есть рабочий текстовый редактор с GUI, который подсчитывает количество каждого слова в определенном .txt файле. У меня даже есть специальная кнопка для подсчета слов под названием «Анализ». Когда я щелкаю по нему, результат должен отображаться в новом окне, а не в cocnsole. Я знаю, что «print ()» показывает результат код в консоли. Но я не могу найти способ оспорить это в GUI. Когда я нажимаю кнопку «Анализ», окно должно появиться и показать результат. Я использую Python 3.8 в PyCharm Community Edition 2019.3.2
import string
import tkinter as tk
from tkinter import Tk, scrolledtext, Menu, filedialog, END, messagebox, simpledialog
import tkinter.scrolledtext as ScrolledText
from tkinter import *
root = Tk (className = " Text Editor")
textArea = ScrolledText.ScrolledText(root, width = 100, height = 50)
textArea.pack()
def newFile():
if len(textArea.get('1.0', END+'-1c')) > 0:
if messagebox.askyesno("Save", "Would you like to save?"):
saveFile()
else:
textArea.delete('1.0', END)
root.title("TEXT EDITOR")
def OpenFile():
file = filedialog.askopenfile(parent = root, title = 'Select a text file', filetypes = (("Text file", ".txt"),("All files", "*.*")))
if file != None:
contents = file.read()
textArea.insert('1.0', contents)
file.close()
def saveFile():
file = filedialog.asksaveasfile(mode='w')
if file!= None:
data = textArea.get('1.0', END+'-1c')
file.write(data)
file.close()
def exit():
if messagebox.askyesno("Quit", "Are you sure you want to quit?"):
root.destroy()
def about():
label = messagebox.showinfo("About", "A simple text editor 0.1")
Проблема с вышеуказанной функцией. Я хочу, чтобы результаты отображались во внешнем окне.
def AnalyzeData():
text = open("dest.txt", "r")
d = dict()
for line in text:
line = line.strip()
line = line.lower()
line = line.translate(line.maketrans("", "", string.punctuation))
words = line.split(" ")
for word in words:
if word in d:
d[word] = d[word] + 1
else:
d[word] = 1
for key in list(d.keys()):
print(key, ":", d[key])
.
menu = Menu(root)
root.config(menu=menu)
FMenu = Menu(menu)
menu.add_cascade(label = "File", menu = FMenu)
FMenu.add_command(label = "New", command = newFile)
FMenu.add_command(label = "Open", command = OpenFile)
FMenu.add_command(label = "Save", command = saveFile)
FMenu.add_separator()
FMenu.add_command(label = "Exit", command = exit)
helpMenu = Menu(menu)
menu.add_cascade(label = "Help")
menu.add_cascade(label = "Analyze", command = AnalyzeData)
menu.add_cascade(label = "Create Plot")
menu.add_cascade(label = "About", command = about)
textArea.pack()
root.mainloop()