错误
Traceback (most recent call last):
File "C:/Users/RCS/Desktop/Project/SHM.py", line 435, in <module>
app = SHM()
File "C:/Users/RCS/Desktop/Project/SHM.py", line 34, in __init__
frame = F(container, self)
File "C:/Users/RCS/Desktop/Project/SHM.py", line 384, in __init__
if "3202" in q:
TypeError: argument of type 'method' is not iterable
码
代码的某些部分,初始化和全部
while 1:
q = variable1.get
if "3202" in q:
variable2.set("NI NODE3202")
try:
switch(labelframe2, labelframe1)
except:
switch(labelframe3, labelframe1)
elif "3212" in q:
variable2.set("NI NODE3212")
try:
switch(labelframe1, labelframe2)
except:
switch(labelframe3, labelframe2)
elif "3214" in q:
variable2.set("NI NODE3214")
try:
switch(labelframe1, labelframe3)
except:
switch(labelframe2, labelframe3)
else:
None
代码的其他部分
def switch(x, y):
if x.isGridded:
x.isGridded = False
x.grid_forget()
y.isGridded = True
y.grid(row=0, column=0)
else:
return False
我正在尝试在另一个
labelframe
内部的三个labelframe
之间创建一个切换,而在该labelframe
外部的其他labelframe
不变。我已经阅读了一些类似的答案,但是我不想在代码中使用
__iter__()
。有人可以提供其他建议吗? 最佳答案
您忘记了调用Entry.get()
方法:
q = variable1.get()
# ^^ call the method
由于方法对象本身不直接支持包含测试,因此Python尝试对对象进行迭代以查看其中是否包含与您的字符串匹配的任何元素。
如果调用该方法,则会获得一个字符串值。字符串确实支持遏制测试。