第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 Python 中的類之間進(jìn)行通信?

如何在 Python 中的類之間進(jìn)行通信?

紅顏莎娜 2021-06-05 10:17:31
我正在嘗試基于 tkinter 構(gòu)建計(jì)算器。我也遵循那里的提示。程序肯定還在進(jìn)行中。由于此錯(cuò)誤,我目前陷入困境:AttributeError: 'Calculator_GUI' 對象沒有屬性 'main'我不知道如何在兩個(gè)班級(jí)之間進(jìn)行工作交流。我還要求對已經(jīng)完成的工作進(jìn)行簡短審查。提前致謝!這是代碼:import tkinter as tkfrom tkinter import ttkclass Calculator_Core():    def __init__(self):        self.input = tk.StringVar()    def buttonClick(self, a):        self.input.set(a)        #DEBUG:        print(self.input)class Calculator_GUI(tk.Frame):    def __init__(self, master):        tk.Frame.__init__(self, master)        self.master = master        self.button = {}        self.configure_gui()        self.create_widgets()        self.main = Calculator_Core()    def configure_gui(self):        self.master.title("Calculator")        self.master.resizable(False, False)    def create_widgets(self):        self.configure_input_space()        row_number = 1        column_number = 0        a = -1        text_buttons = ('789+', '456-', '123*', '0=/C')        for button_row in text_buttons:            for text_button in button_row:                a += 1                self.configure_button(text_button, row_number, column_number, a)                column_number += 1            row_number += 1            column_number = 0    def configure_button(self, text, row, column, key):        self.button[key] = ttk.Button(self.master, text=text,                                  command=lambda: self.main.buttonClick(text))        self.button[key].grid(row=row, column=column)    def configure_input_space(self):        self.entry = ttk.Entry(self.master, textvariable=self.main.input)        self.entry.grid(columnspan=4, sticky='we')if __name__ == "__main__":    root = tk.Tk()    Calculator_GUI(root)    root.mainloop()
查看完整描述

1 回答

?
萬千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

您需要self.main在運(yùn)行該create_widgets()功能之前“制作” ,因此:


class Calculator_GUI(tk.Frame):

    def __init__(self, master):

        tk.Frame.__init__(self, master)

        self.master = master

        self.button = {}

        self.configure_gui()

        self.create_widgets()

        self.main = Calculator_Core()

應(yīng)該是這樣的:


class Calculator_GUI(tk.Frame):

    def __init__(self, master):

        tk.Frame.__init__(self, master)

        self.master = master

        self.main = Calculator_Core()

        self.button = {}

        self.configure_gui()

        self.create_widgets()

因?yàn)樵揷reate_widgets()函數(shù)運(yùn)行了configure_button()和configure_input_space()引用了 的函數(shù)self.main。


查看完整回答
反對 回復(fù) 2021-06-06
  • 1 回答
  • 0 關(guān)注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)