【发布时间】:2014-09-18 11:57:51
【问题描述】:
我正在 python 3 上运行一个脚本,它使用 webbrowser.open() 打开一个 URL,并立即需要用户的输入。问题是活动窗口现在是浏览器的窗口而不是 python shell,并且总是需要 Alt-Tab 或单击来提供答案。你可以想象成千上万的图像是多么令人沮丧。代码就这么简单:
for rP in images:
webbrowser.open(rP)
decision = str(input('Is image '+str(rP)+' ok?')
我想有三种方法可以解决这个问题,但我似乎无法为其中任何一种找到实现。我尝试了 webbrowser.open() 命令中的 'autoraise' 选项,但无济于事。我猜这两种解决方案都会非常简单,以至于我之后会大吃一惊。
所以:
解决方案 #1:在输入行之前有一个命令,使 shell 窗口而不是浏览器处于活动状态。
解决方案 #2:在后台打开网页,因此永远不会离开 shell。
解决方案#3:给 shell 窗口一个“总是在最前面”的属性。
有什么想法吗?
【问题讨论】:
-
要在屏幕上同时显示提示和图像,您可以创建一个简单的 GUI:答案的文本字段和嵌入的 pywebgtk 或 qt 的 webkit 小部件与页面。或者使用 selenium webdriver 在浏览器中显示一个带有问题的 javascript 消息框。
-
这将在什么操作系统上运行?
-
致 J.F.:我已经通过拆分窗口将它们都显示在屏幕上,这不是问题。问题是如果不执行诸如单击或 alt-tab 之类的中间操作,我就无法为 shell 提供输入。致 Staven:操作系统通常是 Windows 7。
-
@dinos66:我建议的两种解决方案都可以解决焦点问题,例如,look at my answers for the related question:开始输入不需要额外的操作。
-
你试过
ipython吗?它允许您内联显示图像(QtConsole 或web browser)。
标签: python shell openurl always-on-top