Как я могу вызвать мою вторую функцию после моей первой функции? - PullRequest
0 голосов
/ 19 января 2020

У меня две функции и две GUI. Я не могу заставить их работать друг за другом. сначала я хочу открыть свой просмотр GUI, затем редактировать GUI. Помоги мне, пожалуйста.

from tkinter import *
from tkinter import filedialog
window = Tk()
def fileme():
    root = Tk()
    root.withdraw()
    file_path = filedialog.askopenfilenames(filetypes=[("Text file","*.txt")])
    print(file_path)
    window.withdraw()
    with open(file_path[0]) as f:
        f_contents = f.read()
        b=(f_contents)
        print(b)
window.title('Edit and save text files by Ali')
frame = Frame(window)
btn = Button(frame, text = 'Browse', command= fileme)
btn.pack(side = RIGHT , padx =55)
frame.pack(padx=100,pady = 30)

root=Tk()
x=filedialog.askopenfilename(filetypes=[("Text file","*.txt")])
T=Text(root,state='normal', height=20, width=70)
T.pack()
T.insert(END, open(x).read())
def save():
    b = T.get('1.0', END)
    f = open(x, 'wt')
    f.write(b)
    f.close()
btn= Button(root, text='Save', command=save)
btn.pack(side = RIGHT , padx =55)
window.mainloop()
root.mainloop()

Ответы [ 2 ]

0 голосов
/ 19 января 2020

@ Epiphna c В вашем решении окно браузера и текстовый редактор открываются в одном и том же window. Я думаю, что мое решение немного лучше.

Я поместил редактор в новое окно, используя Toplevel. Как это:

import tkinter as tk
from tkinter import filedialog

window = tk.Tk()


def editor():
    x = filedialog.askopenfilename(filetypes=[("Text file", "*.txt")])
    new_window = tk.Toplevel()
    t = tk.Text(new_window, state='normal', height=20, width=70)
    t.pack()
    t.insert(tk.END, open(x).read())

    def save():
        b = t.get('1.0', tk.END)
        f = open(x, 'wt')
        f.write(b)
        f.close()
    btn1 = tk.Button(new_window, text='Save', command=save)
    btn1.pack(side=tk.RIGHT, padx=55)


window.title('Edit and save text files by Ali')
frame = tk.Frame(window)
btn = tk.Button(frame, text='Browse', command=editor)
btn.pack(side=tk.RIGHT, padx=55)
frame.pack(padx=100, pady=30)

window.mainloop()
0 голосов
/ 19 января 2020

Я понял, вот ответ на этот тип вопросов. надеюсь быть полезным для всех, кто изучает программирование.

from tkinter import *
from tkinter import filedialog
window=Tk()
def x():
    x=filedialog.askopenfilename(filetypes=[("Text file","*.txt")])
    T = Text(window, state='normal', height=20, width=70)
    T.pack()
    T.insert(END, open(x).read())

    def save():
        b = T.get('1.0', END)
        f = open(x, 'wt')
        f.write(b)
        f.close()
    btn1 = Button(window, text='Save', command=save)
    btn1.pack(side=RIGHT, padx=55)
window.title('Edit and save text files by Ali')
frame = Frame(window)
btn = Button(frame, text = 'Browse', command= x)
btn.pack(side = RIGHT , padx =55)
frame.pack(padx=100,pady = 30)

window.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...