Я хочу ввести значение в запись, нажать кнопку и сохранить это значение в переменной и создать .txt с этим значением, но это не работает - PullRequest
1 голос
/ 16 октября 2019

и прежде всего, извините, если я напишу много ошибок в своем тексте, английский не мой родной язык, заранее спасибо. Во-вторых, я новичок в Python и Tkinter, я посмотрел несколько видео на YouTube и следую некоторым учебникам, чтобы сделать это.

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

Я попытался изменить строку с помощью: -idcheck = StringVar () to idcheck = str (), но в консоли написано: AttributeError: 'str'object не имеет атрибута' get '.

Это код, который я пытался уменьшить максимальноколичество кода, чтобы вы могли попытаться выполнить и проверить, что происходит.

from tkinter import *

window = Tk()

def funcion():
    print("ID: ", idcheck.get()) #To make sure that the value I'm entering is correct

window.title("app") 
Label(window, text="ID").grid(padx=10 ,pady=10, row=0, column=0)

idcheck = StringVar() #this is giving me troubles when I do next step (.write says it must be str() not StringVar()

Entry(window, textvariable=idcheck, width=30).grid(padx=5, row=0, column=1, sticky=E+W)
Button(window, text="Generate", width=30, command=funcion).grid(padx=10,pady=10,row=2,column=0,columnspan=2,sticky=E+W)

idchecklist = open("document.txt","w")
idchecklist.write(idcheck.get())
idchecklist.close()

window.mainloop()

Я ожидаю получить значение, которое я ввожу в Entry, в новом документе, но фактический результат - создание document.txt. но оно пустое (я не знаю, как получить это значение).

Что еще можно попробовать? Спасибо.

1 Ответ

0 голосов
/ 16 октября 2019

Логика записи в файл находится за пределами функции. Когда вы запускаете программу на python, она создает файл document.txt еще до того, как пользователь нажимает кнопку «Создать», и idecheck в этот момент пуст, поэтому файл пуст. Вы можете переместить эту логику, когда пользователь нажимает кнопку «Создать», как показано ниже

def funcion():
    print("ID: ", idcheck.get())  # To make sure that the value I'm entering is correct
    idchecklist = open("document.txt", "w")
    idchecklist.write(idcheck.get())
    idchecklist.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...