2016-03-23 68 views
0

我定義的方法來創建與下面的代碼標籤,_tkinter.TclError:不好的一面:必須是上,下,左,右

from tkinter import * 

class LoginFrame(Frame): 
    def __init__(self, parent): 
     super(LoginFrame, self).__init__() 

     self.parent = parent   
     self.initUI() 

    # initialize the login screen UI 
    def initUI(self): 
     self.parent.title("Login Screen") 

     # Set up login frame properties 
     self.parent.title("Login Screen") 

     # create a background image 
     photo_bg = PhotoImage(file="building.gif")   
     building = self.make_label(self.parent, image=photo_bg) 

     # creating instruction label, where the error occurs 
     inst_lbl = self.make_label(self.parent, "Please login to continue")  


    def make_label(parent, caption=NONE, side=TOP, **options): 
     label = Label(parent, text=caption, **options) 

     if side is not TOP: 
      label.pack(side=side) 
     else: 
      label.pack() 

     return label 


def main(): 
    top = Tk()  
    app = LoginFrame(top) 
    top.mainloop() 


if __name__ == '__main__': 
    main() 

試圖運行的代碼時,我得到了一個錯誤,

_tkinter.TclError: bad side "Please login to continue": must be top, bottom, left, or right 

我想知道如何解決這個問題?使用make_label創建背景圖像時沒有錯誤。

回答

1

您對make_label的定義缺少self參數。您需要將其定義爲:

def make_label(self, parent, ...): 
相關問題