Python论坛  - 讨论区

标题:[python-chinese] wxPython的samples,wxProject里面TreeView的疑问

2005年08月14日 星期日 00:53

马踏飞燕 honeyday.mj at gmail.com
Sun Aug 14 00:53:34 HKT 2005

我现在使用的是python 2.4.1,wxPython 2.6.1 Unicode版。

我下载了对应于wxPython 2.6的demo回来。

运行sample目录下面的wxProject例子,发现treeview控件在获取节点内容的时候出错。
下面是出错的代码,如果wxPriject.py没有改过的话,它在137行。
(child,iter) = self.tree.GetFirstChild(self.root,iter)
报错的信息如下:
Traceback (most recent call last):
  File "D:\eclipse\workspace\python\src\wxPython-2.6.1.0_DEMO\samples\wxProject\wxProject.py",
line 226, in OnFileAdd
    self.project_save()
  File "D:\eclipse\workspace\python\src\wxPython-2.6.1.0_DEMO\samples\wxProject\wxProject.py",
line 138, in project_save
    (child,iter) = self.tree.GetFirstChild(self.root,iter)
  File "D:\python_home\python24\Lib\site-packages\wx-2.6-msw-unicode\wx\_controls.py",
line 5442, in GetFirstChild
    return _controls_.TreeCtrl_GetFirstChild(*args, **kwargs)
TypeError: TreeCtrl_GetFirstChild() takes exactly 2 arguments (3 given)

看错误信息是我提供的参数个数不正确,可是在调用的地方确实是2个参数阿,怎么会变成3个了?
我打印了一下self.root的类型:
看上去也没问题阿。

这是为什么呢?

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 07:42

Gary Jia jiakeke at gmail.com
Sun Aug 14 07:42:05 HKT 2005

在 05-8-14,马踏飞燕<honeyday.mj at gmail.com> 写道:
> TypeError: TreeCtrl_GetFirstChild() takes exactly 2 arguments (3 given)
> 
> 看错误信息是我提供的参数个数不正确,可是在调用的地方确实是2个参数阿,怎么会变成3个了?
> 我打印了一下self.root的类型:
> 看上去也没问题阿。
> 
> 这是为什么呢?

在python里面的类方法,self也是一个参数,就是说如果你调用的时候传递给方法的参数是两个那么就相当于至少3个参数了,因为还有self。没有看源代码不知道是你改变了代码增加了参数还是什么其它原因。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 08:59

Jason Liu telecomliu at gmail.com
Sun Aug 14 08:59:25 HKT 2005

> 下面是出错的代码,如果wxPriject.py没有改过的话,它在137行。
> (child,iter) = self.tree.GetFirstChild(self.root,iter)

wx.TreeCtrl的GetFirstChild只需要self.root一个参数,后面那个不需要:
child, iter = self.tree.GetFirstChild(self.root)

我当初也被文档骗过。^_^

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 12:09

Tangram Liu langram at gmail.com
Sun Aug 14 12:09:07 HKT 2005

我做过treectrl的程序,带第三个参数,发现当我在wxpython2.4.2.4环境下运行时一切正常,而在2.6.0.1下运行则报错,删掉最后一个参数后发现,无论在新老版本下均可正常运行。

在05-8-14,Jason Liu <telecomliu at gmail.com> 写道:
> 
> > 下面是出错的代码,如果wxPriject.py没有改过的话,它在137行。
> > (child,iter) = self.tree.GetFirstChild(self.root,iter)
> 
> wx.TreeCtrl的GetFirstChild只需要self.root一个参数,后面那个不需要:
> child, iter = self.tree.GetFirstChild(self.root)
> 
> 我当初也被文档骗过。^_^
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050814/db40cdce/attachment.htm

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 19:16

马踏飞燕 honeyday.mj at gmail.com
Sun Aug 14 19:16:06 HKT 2005

在 05-8-14,Tangram Liu<langram at gmail.com> 写道:
> 我做过treectrl的程序,带第三个参数,发现当我在wxpython2.4.2.4环境下运行时一切正常,而在2.6.0.1下运行则报错,删掉最后一个参数后发现,无论在新老版本下均可正常运行。
> 
> 在05-8-14,Jason Liu < telecomliu at gmail.com> 写道:
> > 
> > > 下面是出错的代码,如果wxPriject.py没有改过的话,它在137行。
> > > (child,iter) = self.tree.GetFirstChild(self.root,iter)
> > 
> > wx.TreeCtrl的GetFirstChild只需要self.root一个参数,后面那个不需要:
> > child, iter = self.tree.GetFirstChild(self.root)
> > 
> > 我当初也被文档骗过。^_^

晕倒!
源程序我没有改过,没想到官方的sample也靠不住。。。。
看来学开源必须先学会怀疑了,官方来的也不可全信。。。

测试之后问题解决了。
GetFirstChild(self.root) 方法是2个参数
GetNextChild(self.root,iter) 方法是3个参数
也许是为了省一个参数吧,把GetFirstChild的iter=0给去掉了。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 19:17

limodou limodou at gmail.com
Sun Aug 14 19:17:08 HKT 2005

在 05-8-14,Tangram Liu<langram at gmail.com> 写道:
> 我做过treectrl的程序,带第三个参数,发现当我在wxpython2.4.2.4环境下运行时一切正常,而在2.6.0.1下运行则报错,删掉最后一个参数后发现,无论在新老版本下均可正常运行。
> 

上面的问题就是版本升级后与文档不一致了。

-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2005年08月14日 星期日 19:21

limodou limodou at gmail.com
Sun Aug 14 19:21:13 HKT 2005

> 晕倒!
> 源程序我没有改过,没想到官方的sample也靠不住。。。。
> 看来学开源必须先学会怀疑了,官方来的也不可全信。。。

这已经是很早以前的一个问题了,没注意过它一直有问题。

-- 
I like python! 
My Donews Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号