【问题标题】:How to put the border of the entry field in red in case of wrong username or password?如果用户名或密码错误,如何将输入字段的边框设置为红色?
【发布时间】:2017-10-11 07:13:40
【问题描述】:

在用户名或密码错误的情况下,将字段的边框更改为红色而不是在 tkinter-python 中弹出?

用户名代码

    self.username_entry = Entry(
        self.frame, bg="white", bd=2,
        font=self.USERNAME_ENTRY_FONT, relief=FLAT, highlightthickness=1, highlightbackground="black",
        selectbackground="yellow", highlightcolor='#4584F1')
    self.username_entry.place(
        relx=float(self.USERNAME_ENTRY_X) / self.VIRTUAL_WIDTH,
        rely=float(self.USERNAME_ENTRY_Y) / self.VIRTUAL_HEIGHT,
        relheight=float(60) / 768, relwidth=float(454)/1366)
    self.username_entry.bind('<FocusIn>', self.username_entry_handler)
    self.username_entry.bind('<FocusOut>', self.username_entry_handler)

密码

    self.password_entry = Entry(
        self.frame, bg="white", bd=2,
        font=self.PASSWORD_ENTRY_FONT, relief=FLAT, highlightthickness=1, highlightbackground="black",
        selectbackground="yellow", show='*', highlightcolor='#4584F1')
    self.password_entry.place(
        relx=float(self.PASSWORD_ENTRY_X) / self.VIRTUAL_WIDTH,
        rely=float(self.PASSWORD_ENTRY_Y) / self.VIRTUAL_HEIGHT,
        relheight=float(60) / 768, relwidth=float(454)/1366)
    self.password_entry.bind('<FocusIn>', self.password_entry_handler)
    self.password_entry.bind('<FocusOut>', self.password_entry_handler)
    self.password_entry.bind("<Tab>", no_op)

【问题讨论】:

  • 其实我应该要求一个MCVE,带有导入语句。这里真正重要的是您使用的是哪种 Entry(tkinter 或 ttk)。
  • 我用过 tkinter@j_4321

标签: python python-2.7 tkinter


【解决方案1】:

如果登录失败,您可以将两个输入字段的选项highlightcolorhighlightbackground 配置为红色。比如:

import tkinter as tk
root = tk.Tk()

def login():
    # login / passord checking
    right_login = False  

    if right_login:
        print('logged in')
    else:
        username_entry.configure(highlightbackground='red', highlightcolor='red')
        password_entry.configure(highlightbackground='red', highlightcolor='red')

username_entry = tk.Entry(root, bg="white", bd=2, relief='flat', 
                          highlightthickness=1, 
                          highlightbackground="black", 
                          selectbackground="yellow", 
                          highlightcolor='#4584F1')
password_entry = tk.Entry(root, bg="white", bd=2, relief='flat',
                          highlightthickness=1, highlightbackground="black",
                          selectbackground="yellow", show='*', 
                          highlightcolor='#4584F1')

username_entry.pack()
password_entry.pack()

tk.Button(root, text='Log In', command=login).pack()
root.mainloop()

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 2017-09-15
    • 1970-01-01
    • 2021-08-15
    • 2021-08-28
    • 2017-01-30
    相关资源
    最近更新 更多