2017-06-08 5 views
2

私は反復的な作業を手助けするためにコンソールでスクリプトを実行しています。
私はギャラリーで開いている画像を望んで、画像から数字を書きます。Pythonサブプロセス、linuxに焦点を当てない

feh = subprocess.Popen(['feh', 'tmp.jpg']) 

print ("Input number from image:") 
number = input() 

feh.kill() 

このコードは動作しますが、ウィンドウマネージャは、コンソールウィンドウを再集束する追加の工程を追加するfehを、焦点を当て続けます。私はこの行動や別の方法を回避するために渡すことができる追加の引数はありますか?

+0

実行しているPythonスクリプトには独自のウィンドウがありますか?もしそうなら、どのウィジェットセット/グラフィカルツールキット? –

+0

@CharlesDuffyで、OPはスクリプトがコンソールで実行されていると言っています。これはLinuxとX11であるため、私たちは実際にはターミナルウィンドウについて話しています。 – eryksun

答えて

1

回避策の1つは、単にマウスでウィンドウを再フォーカスすることです。

私はxdotool

feh = subprocess.Popen(['feh', 'tmp.jpg']) 

time.sleep(0.1) 
subprocess.call(['xdotool', 'click', '1']) 

something = input() 

feh.kill() 
2

を使用Pythonはtkinterという名前のネイティブのGUIモジュールを、持っています。

GUIプログラムは、Pythonの場合、恐ろしいほど簡単に書くことができます。

#!/usr/bin/python2 -i 
from Tkinter import * 
from PIL import * 
import os 

files = [f for f in os.listdir('.') if f.endswith(".png")] 

root = Tk() 
label = Label(root) 
label.pack() 

for name in files: 
    im = PhotoImage(file=name) 
    label.config(image=im) 
    print("your number plz") 
    input_str = raw_input() 
関連する問題