Тинтер разбивает меню и главное окно при попытке закрытьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Тинтер разбивает меню и главное окно при попытке закрыть

Сообщение Anonymous »

Я использую Tkinter для создания основного текстового редактора. У меня есть небольшое меню файлов с четырьмя кнопками: открыть, сохранить, новый файл и выход. Основная часть окна посвящена редактору, и иногда появляются некоторые кнопки (сохранение, открытие и т. Д.)
Однако у меня есть пара проблем: < /p>

Когда я пытаюсь закрыть главное окно с помощью кнопки выхода на окне, он раскачивается в главное окно в одном окне и в меню в окне «Умносит». Все остается полностью функциональным, но я должен закрыть два окна, чтобы завершить программу. Когда я использую кнопку «Выход» в меню, этого не происходит. Четвертый появляется только тогда, когда происходит вышеупомянутое явление. Почему это делает это? И как это исправить? < /li>
< /ol>
Вот мой код: < /p>
from Tkinter import *
import sys
import menu_config
import tkMessageBox
import error_mes

#Variables that are globally needed
file_input = "" #whats put into the text box
_FILE_= "" #File the user wants to open; readapt to be synonymous with save?
open_a_file = "" #will be the entry field for opening a file
target = ""
new_file_ = ""
new_file_name = ""
def get_from_text():
global file_input
try:
file_input = my_text_box.get("1.0", END)
print file_input
except:
file_input = 'UHOH'
print file_input

def save():
global file_input, FILE_, target, _FILE_
file_input = my_text_box.get("1.0", END)
target = open(_FILE_, "r+w")
target.truncate()
target.write(file_input)

def exit_application():
sys.exit(0)

def menu_open_file():
global _FILE_, open_a_file, save
try:
open_a_file = Entry()
open_a_file.grid(row = 3, column = 0)
open_a_file.insert(0, "Path to File to Open")
save.grid_forget()
Button(main, text = "Click to Open", command = get_file).grid(row = 4,
column = 0)
except:
#tkMessageBox.showinfo("Error Code 52", "Something went wrong.")
error_mes.error()

def get_file():
global _FILE_, open_a_file
_FILE_ = open_a_file.get()
target = open(_FILE_, "r+w")
opened_file = target.read()
try:
my_text_box.insert(INSERT, opened_file)
except:
tkMessageBox.showinfo("This is wrong", "Something went wrong!")

def new_file():
global new_file_
my_text_box.delete(1.0, END)
try:
new_file_ = Entry()
new_file_.grid(row = 3, column = 0)
new_file_.insert(0, "Path to new file + name")
Button(main, text = "Click to Save", command = save_new_file).grid(row = 4,
column = 0)
except:
tkMessageBox.showinfo("Error Code 52", "Something went wrong.")

def save_new_file():
global new_file_, new_file_name
new_file_name = new_file_.get()

my_text_box = Text(bg = "black", fg = "white", insertbackground = "white")
my_text_box.grid(row = 0, column = 0)

def main():
main = Tk()
#The Menu

first_menu = Menu(main)
main.config(menu = first_menu)
fileMenu = Menu(first_menu)
fileMenu.add_command(label = "Open", command = menu_open_file)
fileMenu.add_command(label = "New File...", command = new_file)
fileMenu.add_command(label = "Save", command = save)
fileMenu.add_command(label = "Exit", command = exit_application)
first_menu.add_cascade(label = "File", menu = fileMenu)

savebutton = Button(main, text = "Save", command = save)
savebutton.grid(row = 3, column = 0)
main.mainloop()

if __name__ == '__main__':
main()

Модуль error_mes - это то, что я создал ... извините за путаницу. Это не влияет на программу. Но это код, если он помогает: < /p>
import tkMessageBox

def error():
tkMessageBox.showinfo("Error 52", "Something went wrong.")


Подробнее здесь: https://stackoverflow.com/questions/315 ... pted-close
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»