首页 > 解决方案 > 我应该如何更改代码以使其能够创建用户名?

问题描述

以下代码使用 tkinter;让用户输入他们的姓名、姓氏和出生年份。我希望程序剪切不同的变量并将它们重新组合在一起以形成用户名。我环顾四周寻找解决方案,据我所知,我已经完成了其他人所做的事情:但我的仍然无法按预期工作。

#必填代码

 from tkinter import *
    
    number = 1
    Users = {}
    
    def new_user():
        #------------------------------------------------------
        def enter_credentials_clicked():
            global number
            
            #---------------------------------
            def make_username():
                
                a= text1.get()
                b= text2.get()
                c= text3.get()
                username = a[:3] + b[:3] + c[2:] + str(number)
                number = number + 1
                name = Label(create_user, text= make_username, font = 'Ariel 20').place(relx = 0.5, rely = 1, anchor = 'n')
            #------------------------------------
            
    
        create_user = Tk()
        create_user.geometry('600x200')
    
        title3 = Label(create_user, text=' create your account! ', font = 'Ariel 20').place(relx = 0.5, rely = 0.1, anchor = 'n')
        message3 = Label(create_user, text='To create your unique username, please answer these few questions:', font = 'Ariel 10').place(relx = 0.5, rely = 0.3, anchor = 'n')
        
        first = Label(create_user, text='Please type your first name:').place(relx = 0.2, rely = 0.5, anchor = 'n')
        second = Label(create_user, text='Please type your surname/last name:').place(relx = 0.2, rely = 0.7, anchor = 'center')
        year = Label(create_user, text='Please type your birth year:').place(relx = 0.2, rely = 0.9, anchor = 's')
        
    
        text1= Entry(create_user).place(relx = 0.6, rely = 0.5, anchor = 'n')
        text1 = StringVar()
        
        text2= Entry(create_user).place(relx = 0.6, rely = 0.7, anchor = 'center')
        text2 = StringVar()
        
        text3= Entry(create_user).place(relx = 0.6, rely = 0.9, anchor = 's')
        text3 = StringVar()
    
        enter_credentials = Button(create_user, text = 'create your username!', command = enter_credentials_clicked, padx = 10 ,pady = 10).place(relx = 0.9, rely = 0.7, anchor = 'center')
      
        create_user.mainloop()
        #----------------------------------------------------------
    new_user()

#edit:经过反复试验并感谢评论,我能够提出一个解决方案:

def enter_credentials_clicked():
    #-------------------------------------------------------
        def make_username():
            global username
            global number
            
            a = text_1.get()
            b = text_2.get()
            c = text_3.get()
            
            username = ( a[:3] + b[:3] + c[2:] + str(number))
            number = number + 1
            return username
            
    #--------------------------------------------------------
        make_username()
        name = Label(create_user, text = username, font = 'Ariel 20').place(relx = 0.5, rely = 0.5, anchor = 'n')      
        
        print (username)
        
        
#--------------------------------------------------------
        

    create_user = Tk()
    create_user.geometry('600x200')

    title3 = Label(create_user, text=' create your account! ', font = 'Ariel 20').place(relx = 0.5, rely = 0.1, anchor = 'n')
    message3 = Label(create_user, text='To create your unique username, please answer these few questions:', font = 'Ariel 10').place(relx = 0.5, rely = 0.3, anchor = 'n')
    
    first = Label(create_user, text='Please type your first name:').place(relx = 0.2, rely = 0.5, anchor = 'n')
    second = Label(create_user, text='Please type your surname/last name:').place(relx = 0.2, rely = 0.7, anchor = 'center')
    year = Label(create_user, text='Please type your birth year:').place(relx = 0.2, rely = 0.9, anchor = 's')

    text_1 = StringVar()
    text_2 = StringVar()
    text_3 = StringVar()
    

    text1= Entry(create_user, textvariable = text_1).place(relx = 0.6, rely = 0.5, anchor = 'n')
    
    text2= Entry(create_user,textvariable = text_2).place(relx = 0.6, rely = 0.7, anchor = 'center')
    
    
    text3= Entry(create_user,textvariable = text_3).place(relx = 0.6, rely = 0.9, anchor = 's')
    

    enter_credentials = Button(create_user, text = 'create your username!', command = enter_credentials_clicked, padx = 10 ,pady = 10).place(relx = 0.9, rely = 0.7, anchor = 'center')
  
    create_user.mainloop()

标签: pythonauthenticationtkinterpython-3.7

解决方案


推荐阅读