Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

В чём ошибка в коде?

Матвей Юров Ученик (125), на голосовании 8 месяцев назад
 import tkinter as tk
from tkinter import *

def logwrite():
username = txtLog.get()
password = txtPas.get()

with open("logpas.txt", "a+") as f:
f.write("\n{}{}\n".format(username, password))

win = tk.Tk()
win.geometry("300x400")
win.title("Login")

label = tk.Label(win, text="\nUsername", font='Arial')
label.pack()
txtLog = tk.Entry(win)
txtLog.pack()

labelPas = tk.Label(win, text="\nPassword", font='Arial')
labelPas.pack()
txtPas = tk.Entry(win)
txtPas.pack()

label = tk.Label(win, text="\n", font='Arial')
label.pack()

btnPas = tk.Button(win, text="Log in", font='Arial')
btnPas.pack()

btnR = tk.Button(win, text="Registration", font='Arial', command=logwrite)
btnR.pack(expand=1, anchor=SE)

win.mainloop()
Голосование за лучший ответ
Сергей Бурмистров Профи (679) 9 месяцев назад
В коде есть ошибка какая-то если он не работает
Артём Батылкин Профи (837) 9 месяцев назад
 import tkinter as tk  

from tkinter import *



def logwrite():

username = txtLog.get()

password = txtPas.get()



with open("logpas.txt", "a+") as f:

f.write("\n{}{}\n".format(username, password))



win = tk.Tk()

win.geometry("300x400")

win.title("Login")



label = tk.Label(win, text="\nUsername", font='Arial')

label.pack()

txtLog = tk.Entry(win)

txtLog.pack()



labelPas = tk.Label(win, text="\nPassword", font='Arial')

labelPas.pack()

txtPas = tk.Entry(win)

txtPas.pack()



label = tk.Label(win, text="\n", font='Arial')

label.pack()



# Добавьте параметр command для указания функции logwrite

btnPas = tk.Button(win, text="Log in", font='Arial', command=logwrite)

btnPas.pack()



btnR = tk.Button(win, text="Registration", font='Arial', command=logwrite)

btnR.pack(expand=1, anchor=SE)



win.mainloop()
Abdurrahman Bayramov Профи (586) 9 месяцев назад
В вашем коде есть несколько проблем:

1. Кнопка `btnPas` не связана с функцией `logwrite`. Для связывания функции с событием нажатия кнопки, вы должны использовать аргумент `command`. Измените строку:

```python
btnPas = tk.Button(win, text="Log in", font='Arial')
```

на

```python
btnPas = tk.Button(win, text="Log in", font='Arial', command=logwrite)
```

2. Убедитесь, что вы запускаете код в среде, поддерживающей графический интерфейс Tkinter. Например, если вы запускаете код из командной строки, убедитесь, что у вас есть графическая оболочка для Tkinter (например, Python IDLE).

3. При использовании `command=logwrite`, функция `logwrite` вызывается сразу же при загрузке кода. Чтобы это избежать, вы можете изменить строку:

```python
btnR = tk.Button(win, text="Registration", font='Arial', command=logwrite)
```

на

```python
btnR = tk.Button(win, text="Registration", font='Arial', command=lambda: logwrite())
```

или

```python
btnR = tk.Button(win, text="Registration", font='Arial', command=logwrite)
```

и поместите вызов `win.mainloop()` в конец кода после всех виджетов и функций.
Похожие вопросы