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

时间:2018-07-15 09:13:42

标签: python user-interface tkinter

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

  

self.recorderButton =按钮(框架,文本=“开始录制”,command = self.Recorder.record_screen)AttributeError:“试用”对象   没有属性'Recorder '

这是我的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 个答案:

答案 0 :(得分:0)

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