2017-01-28 19 views
-1

私はVisual Studioの新しいプロジェクトで以下のコードを実行しています.Tkinterを使用しているGUIはVisual Studioで動作していません。これはビジュアルスタジオを初めて使用しているため、なぜ動作しないのか分かりません。tkinterがビジュアルスタジオで動作しないのはなぜですか?

from tkinter import * 
import tkinter as ttk 
#import os  #not needed 
root = Tk() 

#Setting up the window 

root.geometry("250x100") 
root.resizable(width=False, height=False)#Disables user to resize window 
root.title("Login") 

#Temp "DataBase" 

users=[("josh","python")] #<<<here ''josh'' is user and ''python'' i5s   password 
admins=[("josh1","python1")] 

# Login and signup function 

def login():  #login function 

    if (t1.get(),t2.get())in users:  #Temp for testing 
     root.destroy() 
     import MainWindow 
#  os.system("MainWindow")  #does not work 
     print("welcome") 

    elif (t1.get(),t2.get())in admins:  #Temp for testing 
     root.destroy() 
     import AdminMainWindow 
#  os.system("AdminMainWindow")  #does not work 
     print("welcome Admin") 

    else: 

     error.config(text="Invalid username or password") 

def signup():  #signup function 
    root.destroy 
    import SignupWindow 
# os.system("SignupWindow")  #does not work 

#arranging display varables 

top = Frame(root) 
bottom = Frame(root) 
top.pack(side=TOP, fill=BOTH, expand=True) 
bottom.pack(side=BOTTOM, fill=BOTH, expand=True) 

#error placement and font 

error = Label(root, font=("blod",10)) 
error.place(x=40,y=55) 

#input display setup 

l1 = Label(root,text="Username:") 
l2 = Label(root,text="Password:") 

t1 = Entry(root, textvariable=StringVar()) 
t2 = Entry(root, show="*", textvariable=StringVar()) 

b1 = Button(root,text="Login", command=login) 
b2 = Button(root,text="Signup", command=signup) 

#organising 

l1.pack(in_=top, side=LEFT) 
t1.pack(in_=top, side=LEFT) 
l2.pack(side=LEFT,) 
t2.pack(side=LEFT,) 
b1.pack(in_=top, side=BOTTOM) 
b2.pack(in_=bottom, side=BOTTOM) 

#end of Tk loop 

root.mainloop() 

これはpythonコマンドラインで表示され、続行するには任意のキーを押します。

私もオンラインで見ました。人々はTkループを終了しないので、私は言いますが、私は持っています。

visual studio screenshot

+0

'print()'を追加して何かを印刷するかどうかを確認します。私はあなたがプロジェクト内に1つ以上のファイルを持っているのを見ています - おそらく、プロジェクトから別のファイルを開始します。すべてのファイルに 'print()'を入れて、実行されているファイルを確認してください。 – furas

+1

あなたのコードはVSの外で動作するので、VSがPythonスクリプトをどのように実行するかと関係しているようです。 @furasが示唆しているように 'print( '開始ループ')'を 'root'、mainloop()'呼び出しの直前に置き、それが遠くにあるかどうかを確認します。あなたがPythonコンソールを見ているので、スクリプトのファイル名がインタープリタに渡されていない可能性が最も高い問題です。 – martineau

+0

ありがとう、みんな、VSの外では完全に動作し、ループの外でいくつかのプリントが追加され、コマンドウィンドウやコマンドラインには表示されません。しかし、私が新しいプロジェクトを作成して印刷( "Hi")しても同じことが起こりますが、コマンドラインでstrとして "Hi"を表示するように求められます。 @furas –

答えて

0

あなたは、私が新しいファイルを作成し、そこにすべてのコードを配置し、新しいプロジェクトを作成する前に。 VSに一度に1つのコードを追加すると動作しますが、すべて一緒に実行すると動作しません。

関連する問題