【发布时间】:2015-03-10 00:00:27
【问题描述】:
我有一个奇怪的间歇性问题,弹出对话框要求用户输入 URL 并按 Enter。大约有一半的时间,用户按 Enter 键没有响应。对于相同的输入数据,它可以连续发生两次,然后第三次使用相同的输入。重新启动应用程序并没有真正改变行为。我正在尝试使用 PyCharm 使用断点和监视来调试它,但我无法让它正确地进入函数。
管理用户输入的两个函数如下:
def on_click_pic(self, button, null):
self.url_win = Gtk.Window()
self.url_win.set_default_size(500,20)
self.url_win.set_border_width(10)
self.url_win.set_title("Enter a URL for the player photo")
self.url_win.add(self.url_entry)
self.url_win.show_all()
def on_url_enter(self, event):
search = self.url_entry.get_text()
self.url_win.destroy()
print "getting image: %s " % search
self.get_image(search, self.e_image)
self.e_pic = search
print "e_pic set to %s" % search
第一个函数在用户单击固定到事件框的 GTKImage 时触发。这部分总是有效的。第二个由入口框的连接激活,主要由
调用self.url_entry.connect("activate", self.on_url_enter)
就好像这个连接函数只被调用了大约一半的时间,因为 on_url_enter 在剩下的时间里似乎没有运行。我尝试检查我的步骤以查看输入框是否失去焦点,但没有任何模式。还有什么我应该寻找的,或者有没有更可靠的方法来编码这个,也许是通过创建一个输入框的模式类?
【问题讨论】:
-
你能提供一个工作最小的例子来演示这个问题吗?
-
我会试一试的。我必须先重写所有数据库访问位,以便它在基本数据集上运行。
-
这个问题听起来好像它应该可以在没有数据库的情况下重现。
-
这应该可以:pastebin.com/F60uJPB7 启动时,点击名字右侧的空白区域和暂停直到将弹出输入 URL 的框。
-
虽然这不像我想象的那么小,但我尝试了很多次,当我按下回车时,框总是消失。