Установить строку в текст в режиме ожидания - PullRequest
0 голосов
/ 21 октября 2019

Я новичок в этом, поэтому извиняюсь за основной вопрос. Я пытаюсь установить поле ввода для ввода букв и цифр. К сожалению, я могу установить в этом поле только цифры, используя str (). Я попытался возиться с кодом, но он будетне позволяет мне использовать буквы Что я должен использовать вместо str ()? Как вы можете видеть из моего примера кода, я могу установить для имени пользователя и пароля только числовое значение, а не буквенно-цифровые значения. Я считаю, что я импортировал все правильные модули из tk. Я неправильно установил приведенные ниже определения? - self.Username = StringVar () - self.Password = StringVar ()

Спасибо

    from tkinter import*
    import tkinter.messagebox
    from tkinter import ttk
    import random
    import time
    import datetime

def main():
root = Tk()
app = Window1(root)

class Window1:
def __init__(self, master):
    self.master =master
    self.master.title("Notification Monitoring System")
    self.master.geometry('1350x750+0+0')
    self.master.config(bg ='white')
    self.frame = Frame(self.master, bg ='white')
    self.frame.pack()

    self.Username = StringVar()
    self.Password = StringVar()

    self.lblTitle = Label(self.frame, text = 'Welcome to Notification Monitoring', font=('arial',50,'bold'), bg='white',
                          fg='black')
    self.lblTitle.grid(row=0, column=0, columnspan=2, pady=40)
    #==============================Frames================================================================
    self.LoginFrame1 = LabelFrame(self.frame, width=1350, height=600
                           ,font=('arial',20,'bold'),relief='ridge',bg='pale green', bd=20)
    self.LoginFrame1.grid(row=1, column=0)

    self.LoginFrame2 = LabelFrame(self.frame, width=1000, height=600
                           ,font=('arial',20,'bold'),relief='ridge',bg='pale green', bd=20)
    self.LoginFrame2.grid(row=2, column=0)
    #==============================Label And Entry=======================================================
    self.lblUsername=Label(self.LoginFrame1, text = 'Username',font=('arial',20,'bold'),bd=22,
                           bg='pale green', fg='black')
    self.lblUsername.grid(row=0,column=0)
    self.txtUsername=Entry(self.LoginFrame1,font=('arial',20,'bold'),textvariable= self.Username)
    self.txtUsername.grid(row=0,column=1, padx=119)

    self.lblPassword=Label(self.LoginFrame1, text = 'Password',font=('arial',20,'bold'),bd=22,
                           bg='pale green', fg='black')
    self.lblPassword.grid(row=1,column=0)
    self.txtPassword=Entry(self.LoginFrame1,font=('arial',20,'bold'),show='*', textvariable= self.Password)
    self.txtPassword.grid(row=1,column=1, columnspan=2, pady=30)

    #==============================Buttons===============================================================

    self.btnLogin = Button(self.LoginFrame2, text = 'Login', width = 17,font=('arial',20,'bold'),
                           command =self.Login_System)
    self.btnLogin.grid(row=3,column=0, pady=20, padx=8)

    self.btnReset = Button(self.LoginFrame2, text = 'Clear', width = 17,font=('arial',20,'bold'),
                           command =self.Reset)
    self.btnReset.grid(row=3,column=1, pady=20, padx=8)

    self.btnExit = Button(self.LoginFrame2, text = 'Exit', width = 17,font=('arial',20,'bold'),
                          command =self.iExit)
    self.btnExit.grid(row=3,column=2, pady=20, padx=8)
    #==============================Buttons===========================================================
def Login_System(self):
    u =(self.Username.get())
    p =(self.Password.get())
    if (u ==str(123456789) and p ==str(987654321)):
        self.newWindow = Toplevel(self.master)
        self.app = Window2(self.newWindow)
    else:
        tkinter.messagebox.askyesno("Notification Monitoring System", "Invalid login details")
        self.Username.set("")
        self.Password.set("")
        self.txtUsername.focus()
def Reset(self):
    self.Username.set("")
    self.Password.set("")
    self.txtUsername.focus()

def iExit(self):
    self.iExit = tkinter.messagebox.askyesno("Notification Monitoring System", "Confirm you want to exit")
    if self.iExit > 0:
        self.master.destroy()
    else:
        command = self.new_window
        return

def new_window(self):
    self.newWindow = Toplevel(self.master)
    self.app = Window2(self.newWindow)

class Window2:
def __init__(self, master):
    self.master =master
    self.master.title("Notification Monitoring System")
    self.master.geometry('1350x750+0+0')
    self.master.config(bg ='cadet blue')
    self.frame = Frame(self.master, bg ='powder blue')
    self.frame.pack()

    #====================================================================================================
    #==============================New window code here==================================================





    #===================================================================================================




if __name__== '__main__':
root = Tk()
application = Window1(root)
root.mainloop()

1 Ответ

0 голосов
/ 21 октября 2019

Ваш вопрос неясен, но я постараюсь ответить на него. Чтобы принять ввод как число, используйте:

>>>a = int(input("Enter   :"))
Enter   :5
>>>print(a*5)
25
...