【问题标题】:How to get the text from a checkbutton in python ? (Tkinter)如何从 python 中的复选按钮获取文本? (Tkinter)
【发布时间】:2016-02-06 07:39:01
【问题描述】:

我的代码看起来像这样

from Tkinter import *
import tkMessageBox
import Tkinter

top = Tkinter.Tk()
CheckVar1 = IntVar()
CheckVar2 = IntVar()

C1 = Checkbutton(top, text = "Music", variable = CheckVar1, onvalue = 1,  offvalue = 0 )
C2 = Checkbutton(top, text = "Video", variable = CheckVar2,onvalue = 1, offvalue = 0 )

我创建了两个带有值和一些文本的复选按钮。 如果我想打印检查按钮的值,我使用以下代码:

print CheckVar1.get()
print CheckVar2.get()

但我也想打印 Checkbutton 的文本。我尝试了以下操作:

print C1.get("text")
print C2.get("text)

这根本不起作用。这有什么技巧吗?还是我必须创建一些这样的解决方法:(这似乎很奇怪)

 CheckVar1 = IntVar()
 CheckVar2 = IntVar()
 Name1 =  StringVar(value="Music")
 Name2 =  StringVar(value="Video")

 C1 = Checkbutton(top, text = Name1, variable = CheckVar1, onvalue = 1,  offvalue = 0 )
 C2 = Checkbutton(top, text = Name2, variable = CheckVar2,onvalue = 1, offvalue = 0 )

print Name1
print Name2

提前谢谢你;)

【问题讨论】:

  • @Kevin 谢谢。我忘了提到我添加了grid 函数,它一直返回我None。现在我像C1 = ... C1.grid(....) 那样拆分我的复选按钮,现在cget() 函数起作用了!谢谢
  • 为什么要从 UI 中获取文本?那是代码的味道。 UI 不是用于存储值,而是用于与用户交流。

标签: python python-2.7 tkinter


【解决方案1】:
print C1.get("text")
print C2.get("text")

要获取小部件属性的值,请尝试使用cget

print C1.cget("text")
print C2.cget("text")

【讨论】:

  • 我也试过了,得到以下错误: print self.C1.cget("text") AttributeError: 'NoneType' object has no attribute 'cget'
  • 您在创建小部件时是否在使用C1 = CheckButton(...).pack()?这使得无法访问其属性。请参阅Tkinter: AttributeError: NoneType object has no attribute get 了解更多信息。
猜你喜欢
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 2021-04-09
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多