Вывод имени пользователя

August_Mebius

Новичок
Пользователь
Апр 15, 2024
1
0
1
Доброго времени суток!
Не могу разобраться как вывести имя пользователя из файла login в окно файла main
main
Python:
import tkinter as tk
import random as rn
import webbrowser
import login

def decor(func):
    def wrapper():
        button_width = 3
        button_height = 3
        func()
        for button in buttons_list:
            button.config(width=button_width, height=button_height)
    return wrapper

@decor
def main_fun():
    m = []
    min_val = int(ent1.get())
    max_val = int(ent2.get())
    cel = int(ent3.get())

    rows = 6
    cols = 6

    global buttons_list

    buttons_list = []

    while cel > 0:
        count = rn.randint(min_val, max_val)
        cel -= count
        if cel - count < 0:
            m.append(cel-(-count))
            break
        m.append(count)

    button_count = len(m)
    row = 0
    col = 0
    for i in range(button_count):
        button = tk.Button(win, text=str(m[i]), command=web)
        button.grid(row=row, column=col, sticky="NSEW", padx=5, pady=5)  # Размещение кнопок по центру с отступами
        buttons_list.append(button)
        col += 1
        if col == cols:
            col = 0
            row += 1

    ent1.destroy()
    ent2.destroy()
    ent3.destroy()
    btn1.destroy()

def web():
    webbrowser.open('http://google.com')

def show_username():
    username = login.return_login(username)
    username_label.config(text="Имя пользователя: " + str(username))

# Создаём виджеты
win = tk.Tk()

# Создаем метку для отображения имени пользователя
username_label = tk.Label(win, text="", anchor="e")
username_label.grid(row=0, column=1, sticky="e", padx=10, pady=10)
show_username()  # Вызываем функцию для отображения имени пользователя


btn1 = tk.Button(win, text="Create", command=main_fun)
btn1.grid(row=1, column=0, columnspan=3, pady=5)  # Размещение кнопки "Create" в верхней части окна с отступом внизу

ent1 = tk.Entry(win)
ent1.grid(row=2, column=0, padx=5, pady=5)  # Размещение поля ввода 1
ent1.insert(tk.END, "Минимальное значение")

ent2 = tk.Entry(win)
ent2.grid(row=2, column=1, padx=5, pady=5)  # Размещение поля ввода 2
ent2.insert(tk.END, "Максимальное значение")

ent3 = tk.Entry(win)
ent3.grid(row=2, column=2, padx=5, pady=5)  # Размещение поля ввода 3
ent3.insert(tk.END, "Целевое значение")

win.geometry("640x480")
win.mainloop()
login
Python:
import tkinter as tk
from tkinter import messagebox
import sys




def check():
    global username
    login = ent1.get()
    pas = ent2.get()
    with open('users.txt', 'a+') as file:
        file.seek(0)
        for line in file:
            if line.strip():
                username, password = line.strip().split('/')
                if login == username and pas == password:
                    root.destroy()
                    return
        else:
            tk.messagebox.showerror("Ошибка", "Произошла ошибка!")
            sys.exit(1)
    

def return_login(username):
    return username()

def sign_in():
    login = ent1.get()
    pas = ent2.get()
    with open('users.txt', 'a+') as file:
        file.write(login + '/' + pas + '\n')
        file.flush()
        tk.messagebox.showinfo("Успех", "Данные успешно добавлены в файл")

root = tk.Tk()

ent1 = tk.Entry(root)
ent1.pack()

ent2 = tk.Entry(root, show='*')
ent2.pack()

log = tk.Button(root, text='Log in', command=check)
log.pack()

sig = tk.Button(root, text='Sign in', command=sign_in)
sig.pack()

root.mainloop()
У меня получается вывести только адрес(
 

Вложения

  • users.txt
    67 байт · Просмотры: 1

Форум IT Специалистов