我有一个窗口,通过单击按钮查询DB2数据库表,它将记录提取到我的窗口中。你知道吗
对于一些表,在我单击Query按钮之后,我可以在窗口中正确地获取记录。你知道吗
但对于许多其他表,单击“查询”按钮后,窗口将冻结。现在,当我用鼠标键移动窗口的标题栏时,窗口很快就会解冻,我可以正确地从数据库表中获取所有记录。你知道吗
我在Text
小部件中显示每个记录字段。你知道吗
早些时候,当我使用Label
小部件代替Text
小部件时,我没有发现这个问题。你知道吗
我就是这样在运行时创建Text
小部件的。你知道吗
fld_name = Text(self.response_frame, background='yellow', relief=GROOVE,
borderwidth=1, height=1)
val_text = str(ibm_db.field_name(result, i)) # I am getting the value from DB2 database here
fld_name.configure(width=len(val_text) + 5) # As the Text widget doesn't auto-resize, so I am configuring it's size.
fld_name.insert(1.0, val_text)
fld_name['state'] = 'disabled'
fld_name.grid(column=i, row=j, sticky=(W, E))
请建议。你知道吗
谢谢。你知道吗
您需要遵守将
fld_name
的状态从NORMAL
插入或删除到DISABLED
之前和之后正确更改的顺序(反之亦然)。你知道吗这意味着您的插入操作必须如下所示:
但这仍然可能导致你不想要的行为,因为线fld_名称.配置(state='normal')假设您的fld\u名称处于相反的状态(DISABLED),如我在上面的介绍段落中所述。这意味着您将需要对代码执行最后一次修改,这与您创建
fld_name
的方式有关:如您所见,您只需在创建时添加选项
state = 'disabled'
,就可以遵守上面第一段的语句。你知道吗因此,我们正在以连贯的顺序改变
fld_name
态:DISABLED
→NORMAL
→DISABLED
请注意,如果在上述第
fld_name.configure(state='disabled')
行之后的fld_name
中执行数据插入或删除操作,则需要将fld_name
的状态完全恢复到NORMAL
。始终尊重本答案第一段的陈述。你知道吗相关问题 更多 >
编程相关推荐