2017-06-06 10 views
0

タイトルが自分の問題を説明するのに最適でない場合は、まずはごめんなさい。 私は「新しいアカウント」ボタンをクリックし、メソッドで作成されたログインボタンを消して、createaccountメソッドのものを表示するような種類のログインをしようとしています。新しいメニューのメニューをtkinterの別のメソッドから置き換える

私はこれを行いました。私はgrid_forget()pack_forget()をやってみましたが、まだできません。 私はあなたのプログラムの後のあなたのウィジェットを使用する場合は、変数に格納する必要があるのpythonで3 おかげ

from tkinter import * 
class Login: 
    def __init__(self, ventana): 
     ventana.title("Login - Python") 
     ventana.geometry("800x600") 
     Label(ventana, text="name: ").grid(column=0, row=0) 
     Label(ventana, text="Password: ").grid(column=0, row=1) 
     Button(ventana, text="Login").grid(column=0, row=2) 
     Button(ventana, text="Create Account", command=self.createaccount).grid(column=0, row=3) 
     Button(ventana, text="Exit").grid(column=0, row=4) 
    def createaccount(self): 
     print("createaccount method executed") 
     Label(ventana, text="Name: ").grid(column=2, row=0) 
     Label(ventana, text="Password: ").grid(column=2, row=1) 
     Label(ventana, text="Repeat Password: ").grid(column=2, row=2) 
     Label(ventana, text="Email: ").grid(column=2, row=3) 
     Label(ventana, text="Repeat E-mail: ").grid(column=2, row=4) 

ventana = Tk() 
objeto=Login(ventana) 
ventana.mainloop() 

答えて

0

を働いています。

def __init__(self, ventana): 
    ventana.title("Login - Python") 
    ventana.geometry("800x600") 
    self.lblName = Label(ventana, text="name: ") 
    self.lblPass = Label(ventana, text="Password: ") 
    ..... 
    ..... 
    self.lblName.grid(column=0, row=0) 
    self.lblPass.grid(column=0, row=1) 
    ..... 
    ..... 

ここで、これらのウィジェットをコード内の任意の場所で使用できます。

def createaccount(self): 
    self.lblName.grid_forget() 
    self.lblPass.grid_forget() 
    #and so on... 

ウィジェットの作成とgridでそれらを置くことが別々のライン上にある、ということに注意してください。

+0

p.s.私はこの質問がNoneTypeエラーの欺瞞ではないと思う。それで私はそれに答えました。あなたが疑問を欺くと思うなら、私にこの問題を解くことができるように私にpingをしてください。 – Lafexlos

関連する問題