Tkinter按钮未定义

威廉·肯尼迪
from tkinter import *
class Mybuttons():
    def __init__(self, master):
        self.frm= Frame(master)
        self.frm.grid()
        self.count= 0
        self.mybuttons()
        self.base=0
        self.exponent=0
        self.result=0
    def doonebase(self):
        self.base+=1
        self.btn1['text']= 'the base is ' + str(self.base)
    def dooneexponent(self):
        self.exponent+=1
        self.btn2['text']= 'the base is ' + str(self.exponent)
    def getresult(self):
        self.result= self.base * self.exponent
        self.btn3['text']= 'the answer is ' + str(self.result)
    def mybuttons(self):
        self.btn1=Button(self.frm)
        self.btn1['text']='base'
        self.btn1['command']=doonebase
        self.btn2=Button(self.frm)
        self.btn2['text']='exponent'
        self.btn2['command']=dooneexponent
        self.btn3=Button(self.frm)
        self.btn3['text']='result'
        self.btn3['command']=getresult
        self.btn1.grid(row=0, column=0)
        self.btn2.grid(row=0, column=2)
        self.btn3.grid(row=1, column=1)

def try1():
        root= Tk()
        root.title('Compute an exponent!')
        root.geometry("200x300")
        threebuttons= Mybuttons(root)
        root.mainloop()
try1()    

当我运行它时,我得到错误:

File "/home/goofy/Documents/lab10-1.py", line 23, in mybuttons
    self.btn1['command']=doonebase
NameError: name 'doonebase' is not defined

它确实会产生一个窗口,但是按钮不在那里。

当我注释掉为功能分配“命令”的每一行时,代码运行,并且按钮出现,但是它们什么也没做。我曾尝试在构造函数之前定义每个函数,也曾尝试在构造函数之后定义def mybuttons(self)我似乎无法弄清楚为什么代码看不到已定义的函数。

探测

当您在类中定义函数时,它们称为“方法”,它们不再位于全局范围内。这意味着您不能使用doonebasedoonexponent现在,它们是类属性,应该这样访问。由于实例方法是将实例作为其第一个参数(self)给出的,因此可以使用它来获取属性。因此,改变doonebaseself.doonebasedooneexponentself.dooneexponent,并getresultself.getresult

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未定义的名称按钮-tkinter

来自分类Dev

Tkinter按钮在运行时“未定义”

来自分类Dev

使用GUI按钮定义功能(Python \ Tkinter)_入门级_(问题:“功能;未定义”)

来自分类Dev

Tkinter 按钮未定义,因为存在于函数中

来自分类Dev

Tkinter:NameError:名称'equation'未定义

来自分类Dev

Python,Tkinter-未定义根

来自分类Dev

Tkinter的麻烦-未定义名称框架

来自分类Dev

Tkinter - NameError:未定义名称“TopLevel”

来自分类Dev

类型按钮的setonclickListener错误未定义

来自分类Dev

按钮onclick未定义不是函数

来自分类Dev

编辑按钮是表的未定义ID

来自分类Dev

图表,按钮文字未定义

来自分类Dev

$ _GET未定义索引单选按钮

来自分类Dev

Jquery 按钮返回未定义

来自分类Dev

传递时按钮值未定义

来自分类Dev

按钮提交未定义状态

来自分类Dev

nameerror:在tkinter中未定义全局名称

来自分类Dev

Python,Tkinter:NameError:未定义全局名称“ Combobox”

来自分类Dev

Tkinter全局名称保持时间未定义

来自分类Dev

_tkinter.TclError:未定义位图“ pyimage2”

来自分类Dev

NameError:名称“文件”未定义。在使用tkinter线程时

来自分类Dev

Python和tkinter:NameError:未定义全局名称“ roomChange”

来自分类Dev

Python,Tkinter:NameError:未定义全局名称“ Combobox”

来自分类Dev

Tkinter全局名称保持时间未定义

来自分类Dev

全局名称“未定义根”,tkinter,python

来自分类Dev

nameerror:在tkinter中未定义全局名称

来自分类Dev

tkinter应用程序中未定义的标签

来自分类Dev

pycharm 中的 Tkinter 错误:未定义根

来自分类Dev

Python 和 tkinter:NameError:未定义名称“askyesno”

Related 相关文章

热门标签

归档