我正在創建一個簡單的GUI程序來管理優先級。我在從另一個函數中訪問函數時遇到麻煩。在我的程序中,我試圖創建一個GuiPart類的實例,然後調用g.addItem,但它似乎不能像那樣工作。我得到一個錯誤:如何從另一個函數內調用函數?
/usr/bin/python3.5 /home/cali/PycharmProjects/priorities/priorities.py
Traceback (most recent call last):
File "/home/cali/PycharmProjects/priorities/priorities.py", line 70, in > <module>
g.display()
File "/home/cali/PycharmProjects/priorities/priorities.py", line 39, in > display
command = g.addItem)
File "/usr/lib/python3.5/tkinter/__init__.py", line 2077, in grid_configure
+ self._options(cnf, kw))
_tkinter.TclError: bad option "-command": must be -column, -columnspan, -in, > -ipadx, -ipady, -padx, -pady, -row, -rowspan, or -sticky
這裏是我做了什麼:
# priorities.py
# GUI program to manage priorities
from tkinter import *
class Priority:
def __init__(self, subject, priority):
self.subject = subject
self.priority = priority
def subject(self):
return self.subject
def priority(self):
return self.priority
class GuiPart:
def __init__(self):
self.root = self.createWindow()
def createWindow(self):
root = Tk()
root.resizable(width = False, height = False)
root.title("Priorities")
return root
def createWidgets(self):
listBox = Listbox().grid(row=1)
buttonAdd = Button(text = "Add").grid(row = 2,
column = 0,
sticky = W,
command = g.addItem)
buttonRemove = Button(text="Remove").grid(row = 2,
column = 0,
sticky = W,
command = g.removeItem)
buttonEdit = Button(text="Edit").grid(row = 2,
column = 0,
sticky = E,
command = g.editItem)
textBox = Text().grid(row = 3)
def addItem(self, item):
item = Priority(item.subject, item.priority)
item.subject = g.textBox.get("1.0", 'end-1c')
g.listBox.insert(END, self)
def removeItem(self):
pass
def editItem(self):
pass
class Client:
pass
if __name__ == "__main__":
g = GuiPart()
g.createWidgets()
g.root.mainloop()
'addItem'需要一個參數,你不提供它由它的外觀 – ybce
你正在實例化一個'GuiPart'對象爲'g',但你也可以參考類中的'g'。他們應該是'自我',不是? – ryugie