我是新來的Python,剛開始學習class和tkinter,所以請原諒我「混亂」的代碼。 我試着輸入一些字符串到現場NR1,並點擊一個按鈕,打印後此字符串控制檯和存儲這個值後:python pass可變tkinter
from tkinter import Tk, BOTH, RIGHT, RAISED, BOTTOM, TOP, X, StringVar
from tkinter.ttk import Frame, Button, Entry
class AD(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, v=None, raw_input=None)
self.parent = parent
self.parent.geometry("250x150+300+300")
self.parent.title("Trolollo")
self.parent.resizable(False, False)
self.inp = None
self.v = StringVar()
self.raw_input = None
self.initUI()
def user_input(self):
global inp
a = self.raw_input(self.v.get())
inp = a
return inp
def initUI(self):
self.pack(fill=BOTH, expand=True)
frame = Frame(self, relief=RAISED, borderwidth=0)
frame.pack(fill=BOTH, expand=True)
self.entry1 = Entry(frame, textvariable=self.v)
self.entry1.pack(side=TOP, fill=X, expand=False, padx=2, pady=2)
self.entry1.focus_set()
rename_button = Button(frame, text="Dispaly text", command = self.user_input())
rename_button.pack(side=TOP, expand=False, padx=2, pady=2)
entry2 = Entry(frame)
entry2.pack(side=TOP, fill=X, expand=False, padx=2, pady=2)
quit_button = Button(self, text="Quit", command=self.quit)
quit_button.pack(side=RIGHT, padx=5, pady=5)
ok_button = Button(self, text="OK")
ok_button.pack(side=RIGHT, padx=5, pady=5)
def main():
root = Tk()
app = AD(root)
root.mainloop()
if __name__ == '__main__':
main()
執行代碼後,我得到: 類型錯誤:「NoneType '對象不是可調用
任何幫助我理解
簡而言之,'command = self.user_input()'移除缺口。 – Lafexlos
'raw_input'是'None',並且您正嘗試在'a = self.'行中使用parantheses來調用它。不知道你想在那裏達到什麼。 – Lafexlos
你使用的是Python 2還是3?你調用'raw_input()'這是python 2,但你導入'tkinter',而不是'Tkinter',這意味着python 3.然後你標記python-3.5 – tburrows13