-2

我正在使用 Wing 编写和调试 Tkinter GUI。我发现堆栈数据视图似乎与我的小部件的实际属性不匹配。以这段代码为例:

import Tkinter
import ttk

root = Tkinter.Tk()
checkbutton = ttk.Checkbutton(root, text="Test Check Button")
print checkbutton.text

这在最后一行给了我一个属性错误。但是,当我查看堆栈时,显然有一个名为“文本”的属性,其中包含我正在寻找的值:

翼屏截图

有谁知道发生了什么?

我在用着:

  • Wing 版本:Wing IDE Pro 5.1.3-1 (rev 33002)
  • Tkinter 版本:'$Revision:81008 $'
  • Python版本:2.7.10
4

2 回答 2

3

我将此发布到 Wing 电子邮件列表,并从开发人员那里得到以下回复:

它看起来像一个ttk.Checkbutton定义keys()__getitem__() 方法来通过checkbutton[<name>]. 由于keys()and __getitem__(),Wing 将实例显示为就好像它是一个字典一样,其中键和值散布在属性中。Wing 这样做是因为您经常希望查看定义的对象,keys()并且__getitem__()好像它是字典一样,但我同意在这种情况下它会造成混淆。

我们将尝试在未来的版本中改进这一点。

于 2015-08-19T21:56:46.950 回答
1

您所说的属性不是对象属性。小部件使用内部系统来管理小部件选项。.text不是属性,这就是您收到错误的原因。引用配置用于.cget(...)获取值和.configure(...)更改值。

于 2015-08-19T20:28:36.327 回答