0

attrubu 我是 python 新手,但不知道如何解决这个问题:

import wx

class myclass(wx.Frame):

    def __init__(self,parent,id):
        wx.Frame.__init__(self,parent,id,'Frame',size=(300,200))
        panel=wx.Panel(self)

        button=wx.Button(panel,label="click me",size=(120,60))
        self.Bind(wx.EVT_BUTTON, self.clickbutton, button)

        value=1

    def clickbutton(self, event):
        if self.value == 1:
            print("success")

if __name__=='__main__':
    app=wx.PySimpleApp()
    frame=myclass(parent=None,id=-1)
    frame.Show()
    app.MainLoop()

当我单击按钮时,我收到此错误:“AttributeError:'myclass' 对象没有属性'值'”。我究竟做错了什么?/ 如何将“价值”导入我的“点击按钮”功能?

编辑:好的,这个已经解决了。之后我想稍微修改一下:

    self.dropdown=wx.Choice(panel,pos=(130,60))
    list = ['banana', 'apple', 'strawberry']
    self.dropdown.AppendItems(strings=list)

def clickbutton(self, event):
    if self.dropdown.GetStringSelection() == 'apple':
        print("success")

实际上这可行....但是我花了很长时间才弄清楚我必须在最后一行中使用“GetStringSelection()”。如何为“wx.Choice”(和其他 wx 类)显示具有可能属性(如“GetStringSelection()”)的列表?或者是否存在一个好的网站?

编辑2:再次感谢!我有最后一个问题(抱歉一步一步问):

dir(wx.Choice)

工作,但我有一个名为“VarDecl”的对象的给定代码。为此,如果我问,我会收到错误

dir(wx.VarDecl)

我正在为这个 VarDecl 对象寻找像“HasChanged”这样的属性。

Traceback (most recent call last):
File [...]    
if self.theVariable.HasChanged():
AttributeError: 'VarDecl' object has no attribute 'HasChanged'

Edit3:好的,我认为它与“wx”无关,我认为它来自“re”。(或者仍然是“wx”?我很困惑)

4

1 回答 1

3

更改value=1self.value = 1。您现在拥有的value是一个局部变量,它在退出构造函数时被丢弃。

编辑:至于您的第二个问题,内置函数dir(object)将为您提供给定对象范围内的名称列表(包括方法)。 更多信息在这里

编辑 2: wxPython 文档也可能对您有用

编辑 3:关于 theVariable 的事情:你试过dir(self.theVariable)吗?

于 2012-09-18T09:12:44.197 回答