2017-06-19 23 views
1

私は学校プロジェクトのためにこのコードを継承しました。それぞれの選択肢に実行オプションを付ける必要があります。複数の選択肢に基づいてスクリプトを実行

それぞれのオプションは別のpythonスクリプト+パラメータを実行します。

2番目のオプション「route.py -Q」と3番目の「shutdown.py」に「route.py -W」を追加するにはどうすればよいですか?あなたのラジオボタンのコールバック関数で

from Tkinter import * 

def sel():  
    selection = "Component destination " + str(var.get())  
    label.config(text = selection) 

root = Tk() 
var = IntVar() 

R1 = Radiobutton(root, text="Send to warehouse", variable=var, value=1, command=sel) 
R1.pack(anchor = W) 

R2 = Radiobutton(root, text="Send to QA", variable=var, value=2, command=sel) 
R2.pack(anchor = W) 

R3 = Radiobutton(root, text="Stop process", variable=var, value=3, command=sel) 
R3.pack(anchor = W) 

label = Label(root) 
label.pack() 
root.mainloop() 
+0

コードのインデントが壊れています。 –

+0

コードは機能していますが、字下げはポストで壊れています。 – MakavelliRo

+0

あなたのコードを見ることができません。私たちはあなたの質問にしか見ることができません。あなたのコードを適切にフォーマットするのに十分な気がなければ、なぜ人々が十分に世話をすると期待していますか? 。 –

答えて

0

、あなただけの選択されたボタンをチェックして、if/elif文を使用して、所望のコマンドを実行することができます。

import os 

def sel(): 
    selValue = var.get() 
    if selValue == 1: 
     os.system("route.py -W") 
    elif selValue == 2: 
     os.system("route.py -Q") 
    elif selValue == 3: 
     os.system("shutdown.py") 

引数でPythonスクリプトを起動するには、上記のようos.system()を使用することができます。しかし、おそらくより良い方法は、インポートすることができるようにそのスクリプトを書き換えることであり、その中の関数はas described hereと呼ばれます。

+1

ありがとう@Josselinは、スクリプトの書き直し作業中にあなたが示唆した回避策を試みます。 – MakavelliRo

関連する問題