亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過按鈕調用函數時出現 Tkinter 錯誤

通過按鈕調用函數時出現 Tkinter 錯誤

千巷貓影 2023-09-12 16:47:25
因此,我嘗試在 tkinter 中使用一些條目小部件,然后使用同時執行多個 .get() 命令的函數。但是,我收到一個錯誤,即該函數未定義,即使它們位于同一類中。這是代碼示例:def GetSubjects():        subject1 = subject1entry.get()        subject2 = subject2entry.get()        subject3= subject3entry.get()subjectConfirm.grid(row=3, column=0, command=GetSubjects)正如我所說,它們都在同一類中,但按鈕無法調用該函數。我對 tkinter 和這個網站比較陌生,所以如果這是簡單的事情請原諒我,但我在其他地方找不到解決方案。編輯:這是整個課程,我知道我的代碼可能非常次優,但這是我嘗試過的第一個大型項目class Menu:    def __init__(self, master):        frame = tk.LabelFrame(master, text="Main Menu", padx=100, pady=10)        frame.grid(row=0, column=0, padx=15, pady=15)        # Create timetable button        createTimetable = tk.Button(frame, text="Create Timetable", command=self.CreateTimetable)        createTimetable.grid(row=0, column=0)        # Exit program button        exitProgram = tk.Button(frame, text="Exit Program", command=self.CloseWindow)        exitProgram.grid(row=1, column=0)    def CloseWindow(self):        root.destroy()    def GetSubjects():        subject1 = subject1entry.get()        subject2 = subject2entry.get()        subject3 = subject3entry.get()    def CreateTimetable(self):        tableWindow = tk.Toplevel(root)        tableWindow.title('Timetable Maker Window')        tableWindow.geometry("800x500+400+200")        # Subject labels        subjectlabel1 = tk.Label(tableWindow, text="Enter your first subject:")        subjectlabel2 = tk.Label(tableWindow, text="Enter your second subject:")        subjectlabel3 = tk.Label(tableWindow, text="Enter your third subject:")        # Subject entry boxes        subject1entry = tk.Entry(tableWindow)        subject2entry = tk.Entry(tableWindow)        subject3entry = tk.Entry(tableWindow)        # Puts subject entry boxes on screen        subject1entry.grid(row=0, column=1)        subject2entry.grid(row=1, column=1)        subject3entry.grid(row=2, column=1)        # Puts subject labels on screen
查看完整描述

1 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

你的GetSubjects()方法應該是這樣的


def GetSubjects(self):

    subject1 = self.subject1entry.get()

    subject2 = self.subject2entry.get()

    subject3 = self.subject3entry.get()

你的CreateTimetable方法應該看起來像這樣(不完整但給你正確的想法)


def CreateTimetable(self):

    # Code removed for clarity

    self.subject1entry = tk.Entry(tableWindow)

    self.subject2entry = tk.Entry(tableWindow)

    self.subject3entry = tk.Entry(tableWindow)

按鈕的回調應該如下所示


subjectConfirm = tk.Button(tableWindow,text="Press to confirm subjects", command=self.GetSubjects)

屬性/方法需要成為Menu類的一部分,因此您可以用來self.告訴 python 為當前類創建這些屬性(self 是典型約定,但只要保持一致,就可以是任何內容)。


哦,這些print(subject1)部分需要位于GetSubjects方法的末尾,而不是當前所在的位置。


查看完整回答
反對 回復 2023-09-12
  • 1 回答
  • 0 關注
  • 84 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號