Вывод текста в файл Tkinter - PullRequest
1 голос
/ 07 апреля 2020

когда я прошу его вывести поле ввода в файл, он ничего не делает, и, поскольку я новичок в python, я немного застрял, я знаю, что это простая проблема, но я не уверен как это исправить. Пожалуйста, помогите.

import tkinter as tk
from PIL import ImageTk
window= tk.Tk()

def SignUp ():
    text = username_entry.get()
    file= open(r"C:/Users/willi/OneDrive/Documents/Scripts/username_info.txt", "w") 
    file.write(text)
    file.close()

    username_entry.delete(0, tk.END)
    password_entry.delete(0, tk.END)

def createNewWindow():
    window1 = tk.Toplevel(window)
    canvas= tk.Canvas(window1,width=1920,height=1080)
    canvas.create_image(0,0,anchor=tk.NW, image= Main)
    canvas.pack()
    signup_button=tk.Button(window1,width=23, text="Register!", font="CCDutchCourage2", fg="white", height=1, relief="flat", bg="#183936", command=SignUp)
    signup_button.place(x=840, y=665)
    username_entry= tk.Entry(window1,width=14, bg="#183936", font=('Ariston Comic Demo Regular', 35), relief="flat")
    username_entry.place(x=776, y=447)
    password_entry= tk.Entry(window1,width=14, bg="#183936", font=('Ariston Comic Demo Regular', 35), relief="flat")
    password_entry.configure(show="*")
    password_entry.place(x=776, y=555)


Main= tk.PhotoImage(file= r"C:/Users/willi/Images/Asset 15.png")
canvas= tk.Canvas(window,width=1920,height=1080)
canvas.create_image(0,0,anchor=tk.NW, image= Main)
canvas.pack()
signup_button=tk.Button(window,width=23, text="Sign Up!", font="CCDutchCourage2", fg="white", height=1, relief="flat", bg="#183936", command=createNewWindow)
signup_button.place(x=840, y=665)
username_entry= tk.Entry(window,width=14, bg="#183936", font=('Ariston Comic Demo Regular', 35), relief="flat")
username_entry.place(x=776, y=447)
password_entry= tk.Entry(window,width=14, bg="#183936", font=('Ariston Comic Demo Regular', 35), relief="flat")
password_entry.configure(show="*")
password_entry.place(x=776, y=555)

1 Ответ

1 голос
/ 07 апреля 2020

Вы ошибаетесь. Ваша программа действительно хранит значение в файле username_info.txt.

Проблема в том, что у вас есть две переменные с именем username_entry. Один является глобальным (определяется в конце скрипта), а другой - локальным (определяется в createNewWindow()). SignUp() получает доступ к глобально определенному. Это соответствует элементу first tk.Entry в first window . Если вы оставите этот элемент пустым и введете только имя пользователя во втором окне, ничего не будет сохранено.

Кроме того, вы пропустили строку tk.mainloop() в своем опубликованном примере. :)

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