2017-01-06 3 views
0

私は単純なスクリプトを作成しようとしていますが、ユーザ名とパスワードが正しく入力されると、tkinterを使ってログインします.tkinterのウィンドウを閉じて、シェルにコマンドラインコードとtkinterコードを入力します同じ.pyファイルでは、クラスを使用してみるたびに問題が発生します。PythonはCLIコードに直接入り、tkinterは完全に無視されます。Pythonのtkinter GUIから仕上げた後、コマンドラインで作業を続けますか?

from tkinter import * 
class CLI(): 
    def something(): 
     eg = input("name: ") 
     print("your name is",eg) 
    something() 
def login(): 
    if (txtUsername.get() == "admin" and txtPassword.get() == "secret"): 
     messagebox.showinfo("Access granted", "Valid") 
     c = CLI() 
     print(c) 
     top.destroy() 
    else: 
     messagebox.showinfo("Access denied", "Invalid") 


top = Tk() 
top.wm_title("example") 
top.minsize(width=500, height=400) 
top.resizable(width=False, height=False) 
var = StringVar() 
lblUsername = Label(top, text="Username:") 
lblUsername.pack() 
txtUsername = Entry(top) 
txtUsername.pack() 
lblPassword = Label(top, text="Password:") 
lblPassword.pack() 
txtPassword = Entry(top) 
txtPassword.pack() 
btnCHKLogin = Button(top, text="Check Login..", command=login) 
btnCHKLogin.pack() 

答えて

0

問題は、あなたがすぐにそれを定義した後ではなく、tkinterコードの後something()を呼び出すことで実行しています

def something(): 
    eg = input("name: ") 
    print("your name is",eg) 
something() #you call something() here so it executes first 

は、この行を削除するTkinterのコードを実行できるようになります。

+0

ただし、削除するとどのように関数を呼び出すことができますか? – NourNaser

+0

あなたは実際の関数ではなく何か()への呼び出しを削除する必要があります。 – Trelzevir

+0

ええ、その行を削除すると、その関数を使用することはできません。私はログイン画面しか取得できません。 – NourNaser

関連する問題