Ширина виджетов Tkinter испорчена - PullRequest
0 голосов
/ 15 апреля 2020

Я недавно начал работать над проектом банка паролей. Последние несколько дней он работал нормально, но его GUI недавно перестал работать, и я не помню, что я изменил в коде. По сути, ширина виджетов tkinter кажется чем-то ограниченной. Вот несколько скриншотов.

Main Menu

New Entry

И вот код, который я написал для этих частей из GUI.

    # Main Menu
    passRoot = tk.Tk()
    passRoot.configure(bg=Global.LIGHT_COLOR)
    passRoot.title("EGPB Main Password")
    passRoot.geometry("600x300")
    passRoot.resizable(False, False)
    passRoot.protocol("WM_DELETE_WINDOW", lambda: sys.exit())

    tk.Label(passRoot, bg=Global.LIGHT_COLOR, text="EGPB Password Bank", font=("Roboto Mono", 18, "bold")).place(anchor="center", x=300, y=20)
    tk.Label(passRoot, bg=Global.LIGHT_COLOR, text="Insert Your Main Password", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=75)
    inp = tk.Entry(passRoot, font=("Roboto Mono", 10), width=30, show="*", bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    inp.place(anchor="center", x=300, y=150)

    tk.Button(passRoot, bg=Global.MAIN_COLOR, text="OK", width=8, font=("Roboto Mono", 14), command=lambda: self.validatePassword(inp, passRoot)).place(anchor="center", x=300, y=250)

    passRoot.mainloop()

    # New Entry
    root = tk.Tk()
    root.configure(bg=Global.LIGHT_COLOR)
    root.geometry("600x600")
    root.resizable(False, False)
    root.title("Add Entry")

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Adding a New Entry", font=("", 18)).place(anchor="center", x=300, y=20)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Name", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=75)
    name = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    name.place(anchor="center", x=300, y=100)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Password", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=150)
    password = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    password.place(anchor="center", x=300, y=175)

    tk.Button(root, bg=Global.MAIN_COLOR, text="Generate\nPassword", font=("Roboto Mono", 10), command=lambda: self.generatePassword(password, root)).place(anchor="center", x=525, y=175)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Email (Optional)", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=225)
    email = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    email.place(anchor="center", x=300, y=250)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Site (Optional)", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=300)
    site = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    site.place(anchor="center", x=300, y=325)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Username (Optional)", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=375)
    username = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    username.place(anchor="center", x=300, y=400)

    tk.Label(root, bg=Global.LIGHT_COLOR, text="Notes (Optional)", font=("Roboto Mono", 10)).place(anchor="center", x=300, y=450)
    note = tk.Entry(root, font=("Roboto Mono", 10), width=45, bd=2, relief=tk.GROOVE, justify=tk.CENTER)
    note.place(anchor="center", x=300, y=475)

    btn = tk.Button(root, bg=Global.MAIN_COLOR, width=8, text="OK", font=("Roboto Mono", 14), command=lambda: self.addEntry(name.get(), password.get(), root, email.get(), site.get(), username.get(), note.get()))
    btn.place(anchor="center", x=300, y=550)

Я был бы очень признателен, если бы кто-нибудь из вас знал, что я сделал неправильно и как это исправить.

Большое спасибо

1 Ответ

0 голосов
/ 15 апреля 2020

.place (relx = 0, rely = 0,05, relheight = 0,03, relwidth = 1) !! использование 0-1.0 вместо пикселей полностью масштабирует их должным образом, особенно relheight, relwidth, они являются относительными!

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