2014-01-07 63 views
1

所以我一直在這個非常簡單的聊天程序工作,但不管我做什麼,我只是不能讓它正常工作。由於某種原因,常規類的語句「狀態=已禁用」和「粘= N + S + E + W」都不再工作,只是導致以下錯誤:Tkinter正常陳述不起作用

Traceback (most recent call last): 
    File "C:\Users\K2\Desktop\Projekt 1\chWin.py", line 60, in <module> 
    chWin = chWin() 
    File "C:\Users\K2\Desktop\Projekt 1\chWin.py", line 12, in __init__ 
    self.chatWin.configure(bg = '#747371', fg = 'orange', state = DISABLED) 
NameError: global name 'DISABLED' is not defined 

我真的出來的想法和無法在任何地方找到答案。也許這很簡單,不知道!請幫忙! `

import tkinter as GUI 

switch = False 

class chWin(GUI.Tk): 
    def __init__(self): 
     GUI.Tk.__init__(self) 


     #Medalandefönster 
     self.chatWin = GUI.Text(self) 
     self.chatWin.configure(bg = '#747371', fg = 'orange', state = DISABLED) 
     self.chatWin.grid(row = 0, column = 0, sticky = N+S+E+W) 

     #Scrollbaren 
     self.scrl = GUI.Scrollbar(self) 
     self.scrl.grid(row = 0, column = 0, sticky = N+S+E+W) 

     #Gör så att scrollbar fungerar 

     self.scrl.configure(command = self.chatWin.yview) 
     self.chatWin.configure(yscrollcommand = self.scrl.set, state = DISABLED) 

     #Medalandeinput 
     self.msg = GUI.Entry(self) 
     self.msg.configure(bg = '#262626', fg = 'orange') 
     self.msg.grid(row = 1, sticky = N+S+E+W) 

     #Skicka-knapp 
     self.btn = GUI.Button(self, text = '<<Send>>', command = self.sendMsg) 
     self.btn.configure(bg = 'orange', fg = 'black') 
     self.btn.bind('<Button-1>', self.sendMsg) 
     self.btn.grid(row = 1, sticky = N+S+E+W) 

     #Binder "Enter" till knappen 
     self.msg.bind('<Return>', self.sendMsg) 

    def sendMsg(self, event=None): 
     global switch 
     send = self.msg.get() 
     print (send) 
     if len(send) < 1: 
      pass 
     else: 
      ext = 'Me:\n ' 
      ext = ext + send 
      self.chatWin.configure(state = NORMAL) 
      self.chatWin.insert(END, ext + '\n') 
      self.chatWin.yview(END) 
      self.chatWin.configure(state = DISABLED) 
      sak = ext + '\n' 
      switch = True 
      while switch == True: 
       mess = send.encode() 
       s.send(mess) 
       print('client sent: ', mess) 
       switch = False 
      msg.delete(0, END) 

chWin = chWin() 
chWin.mainloop() 

`

回答

1

你需要GUI.DISABLED,因爲DISABLEDtkinter命名空間的一部分,你必須:

import tkinter as GUI 

也是一樣NEWSNORMALEND - GUI.NGUI.E,...

+0

Thnx這麼多的幫助!像拼湊一樣工作! – Cevil

+0

沒問題。很高興做到這一點。 :) – mgilson