错误
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尝试对对象进行迭代,以查看其中是否包含与字符串匹配的元素。
如果调用方法,则会得到一个字符串值。字符串确实支持包含测试。
出现该错误的原因是在.get查询后没有添加"((",因此出现了修复q = variable1.get
到q = variable.get()
更改的错误