代码之家  ›  专栏  ›  技术社区  ›  Carl

如何从导入的包调用tkinter中的方法?

  •  0
  • Carl  · 技术社区  · 6 年前

    我有一个记录屏幕的python脚本,但现在当我尝试使用tkinter运行屏幕记录脚本并从tk窗口中的按钮终止时,我面临以下问题:

    self.Recorder Button=按钮(frame,text=“Start Recording”,command=self.Recorder.record_screen)属性错误:“试用”对象 '

    这是我的python代码:

    from tkinter import *
    import Recorder
    
    class Trial:
    
        def __init__(self, master):
            frame = Frame(master)
            frame.pack()
    
            # self.printButton = Button(frame, text="Print Message", command=self.printMessage)
            # self.printButton.pack(side=LEFT)
            self.recorderButton = Button(frame, text="Start Recording", command=self.Recorder.record_screen)
            self.recorderButton.pack(side=LEFT)
    
            self.quitButton = Button(frame, text="Quit", command=frame.quit)
            self.quitButton.pack(side=LEFT)
    
        def printMessage(self):
            print("Hello there its me Nitin!")
    
    root = Tk()
    alpha = Trial(root)
    root.mainloop()
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Billal Begueradj    6 年前

    record_screen() 是属于 Recorder 模块。所以用self作为前缀是没有意义的。

    我的意思是你应该写回呼如下:

    self.recorderButton = Button(frame, text="Start Recording", command=Recorder.record_screen)
    

    编辑:

    通过你的评论来回答这个问题。

    command = something ,那个 something 必须是一个回调(函数),我猜你没有在某个地方实现那个回调。

    可以在类中添加此函数:

    def quit(self):
        self.frame.destroy()
    

    以及 改变( ...command=self.frame.quit )到( ...command=self.quit