Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 15, 2024 15:04:50

August_Mebius
Зарегистрирован: 2024-04-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод имени пользователя в основное окно программы.

Доброго времени суток!

Нужно вывести имя пользователя из файла логин, в окно мэйн.
Ниже код файла login

 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()

Тут код файла мэйн
 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()

Пробовал разные способы. Но, у меня получается вывести только адрес(



Прикреплённый файлы:
attachment users.txt (67 байт)

Офлайн

#2 Апрель 16, 2024 01:18:10

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1350
Репутация: +  118  -
Профиль   Отправить e-mail  

Вывод имени пользователя в основное окно программы.

 username = login.return_login(username)
в этой строке не понятно откуда и зачем появился username в скобках

Отредактировано xam1816 (Апрель 16, 2024 09:01:18)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version