Как я могу поставить виджет в разные рамки? - PullRequest
0 голосов
/ 24 января 2019

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

Переключение между двумя кадрами в tkinter

В этом коде показано, что мы должны передать кадры в качестве параметров виджету, чтобы указать их кадры. Однако, когда я передаю f1 в качестве параметра ниже, метка «псевдоним» исчезает. То же самое относится и к другим элементам / виджетам на экране входа. Как я могу это исправить?

import tkinter
from tkinter import messagebox

def gantihal(frame):
    frame.tkraise()

root = tkinter.Tk()
root.geometry("500x500")


f1 = tkinter.Frame(root)
f2 = tkinter.Frame(root)


for frame in (f1, f2):
    frame.grid(row=0, column=0, sticky='news')



nickname_label= tkinter.Label(f1, text="Nickname:").place(x=140, y=150)
password_label = tkinter.Label(text="Password:").place(x=140, y=200)

nickname_area = tkinter.Entry()
nickname_area.place(x=210, y=150)
password_area = tkinter.Entry(show="*")
password_area. place(x=210, y=200)


def auth_login(event=None):
    global nickname_area
    global password_area
    username = nickname_area.get()
    pswd = password_area.get()
    if username == "admin" and pswd == "root":
        try:
            gantihal(f2)
            messagebox._show("Rchat v1.0.", "Welcome to RChat !")
        except ConnectionRefusedError:
            messagebox.showerror("Server Error", "The server is not connected.")

    else:
        messagebox.showerror("Wrong credentials", "Either nickname or password is wrong. Please try again.")


login_button = tkinter. Button(text="Log In" , command= auth_login, height=2, width=20)
login_button.place(x=195, y=250)


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