2016-07-19 3 views
1
import Tkinter as tk 
from functools import partial 

pad = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ["C", 0, "S"]] 
passcode = "" 

def append_passcode(value): 
    global passcode 
    if len(passcode) == 4: 
     passcode = passcode[1:] 
    passcode += value 

def clear(): 
    global passcode 
    passcode = "" 

def submit(): 
    global passcode 
    if passcode == "1234": 
     msgBox.showinfo("Login Attempt", "Successful") 
     passcode = "" 
    else: 
     msgBox.showinfo("Login Attempt", "Failed") 
     passcode = "" 

main_window = tk.Tk() 

btns = [] 
row_placement = 0 
for line in pad: 
    col_placement = 0 
    for number in line: 
     btn_command = partial(append_passcode, str(number)) 
     btn = tk.Button(main_window, text=str(number), width=10, command=btn_command) 
     btns.append(btn) 
     btn.grid(row=row_placement, column=col_placement) 
     col_placement += 1 
    row_placement += 1 

#Setting C to clear the passcode function 
btns[-3].config(command=clear) 

#Setting S to submit passcode 
btns[-1].config(command=submit) 

Ich schreibe eine NUMPAD-Anwendung, wo der Benutzer den richtigen 4-stelligen Code eingeben muss, um auf die Anwendung zuzugreifen. Wenn der Testcode ausgeführt wird, wird die GUI nicht angezeigt. Was muss getan werden, damit dieser Code funktioniert?Konnte die Python-Anwendung basierend auf TKinter nicht ausführen

+0

Wenn meine Antwort Ihnen hilft, könnten Sie bitte den grünen Haken drücken –

Antwort

1

Hier ist, was Sie falsch gemacht habe:

  • Falsch geschriebene tkinter
  • Nicht

    enthalten
    main_window.mainloop() 
    

Versuchen Sie diesen Code

import tkinter as tk 
from functools import partial 

pad = [[1, 2, 3], [4, 5, 6], [7, 8, 9], ["C", 0, "S"]] 
passcode = "" 

def append_passcode(value): 
    global passcode 
    if len(passcode) == 4: 
     passcode = passcode[1:] 
    passcode += value 

def clear(): 
    global passcode 
    passcode = "" 

def submit(): 
    global passcode 
    if passcode == "1234": 
     msgBox.showinfo("Login Attempt", "Successful") 
     passcode = "" 
    else: 
     msgBox.showinfo("Login Attempt", "Failed") 
     passcode = "" 

main_window = tk.Tk() 

btns = [] 
row_placement = 0 
for line in pad: 
    col_placement = 0 
    for number in line: 
     btn_command = partial(append_passcode, str(number)) 
     btn = tk.Button(main_window, text=str(number), width=10, command=btn_command) 
     btns.append(btn) 
     btn.grid(row=row_placement, column=col_placement) 
     col_placement += 1 
    row_placement += 1 

#Setting C to clear the passcode function 
btns[-3].config(command=clear) 

#Setting S to submit passcode 
btns[-1].config(command=submit) 

main_window.mainloop() 

Jetzt sollte dein Fenster erscheinen.

Hoffe das hilft und fühlen sich frei, um irgendwelche Fragen zu kommentieren.

+0

tkinter darf nicht falsch geschrieben sein - sie haben die korrekte Schreibweise für python2. – Delioth