【问题标题】:Button instance has no __call__ method按钮实例没有 __call__ 方法
【发布时间】:2018-02-23 01:29:52
【问题描述】:

我想用python制作应用程序所以我刚刚开始,我想点击按钮并显示图表!!!

但它不允许我这样做。

代码 sn-p:

    from Tkinter import *
    import matplotlib
    matplotlib.use('TkAgg')
    from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
    from matplotlib.figure import Figure
    import matplotlib.pyplot as plt
def schart2(stock_sym): 
    df
    df.astype(float)
    labels =      ['day0','day1','day2','day3','day4','day5','day6','day7','day8','day9','day10','day11','day12','day13','day14','day15','day16','day17','day18','day19','day20','day21','day22','day23','day24','day25','day26','day27','day28','day29','day30']

    df.columns=labels
    plt.subplots_adjust(left=0.1, bottom=0.15, right=0.99, top=0.95)
    ax=plt.imshow(df, cmap=plt.cm.get_cmap("RdPu"), interpolation="nearest",aspect="auto")
    plt.xticks(range(len(labels)), labels, rotation=90, va="top", ha="center")

    plt.colorbar()
    plt.title("Return rate Retention")
    plt.xlabel("Retention Days")
    plt.ylabel("Total Days")
    fig=ax.get_figure()
    plt.show()

class StockChart(Frame):
    def __init__(self, stock_sym=''):
        Frame.__init__(self, parent=None)
        self.pack(expand=YES, fill=BOTH)
        self.create_widgets(stock_sym)
        self.makeWidgets(stock_sym)

    def create_widgets(self, stock_sym):
        self.makeWidgets = tk.Button(self)
        self.makeWidgets["text"] = "Hello World\n(click me)"
        self.makeWidgets["command"] = self.makeWidgets
        self.makeWidgets.pack(side="top")

        self.quit = tk.Button(self, text="QUIT", fg="red",
                              command=root.destroy)
        self.quit.pack(side="bottom")

    def makeWidgets(self, stock_sym):
        #self.f = graphData(stock_sym,12,26)
        self.f = schart2(stock_sym)
        self.canvas = FigureCanvasTkAgg(self.f)
        self.canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
        self.canvas.show()



if __name__ == '__main__':
    StockChart('ACAD').mainloop()

错误是:

    self.makeWidgets(stock_sym)
AttributeError: Button instance has no __call__ method

我这样做是完全错误的还是有一种简单的方法可以解决这个问题?任何帮助将不胜感激。

【问题讨论】:

  • 您发布的代码中似乎有 15 或 20 个错误和错误...您是这样写的,还是由各种来源的剪切和粘贴组合而成的?它曾经在早期阶段运行过吗?您能否发布一些更简单的内容,在您更改工作代码后产生一个错误?

标签: python python-2.7 tkinter tkinter-entry


【解决方案1】:

你的变量

self.makeWidgets = tk.Button(self)

与你的类方法同名

def makeWidgets(self, stock_sym):

先尝试改变这个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 2023-04-03
    • 2012-07-04
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多