2017-09-12 16 views
-1

以下は私のコードの一部です。私は、COMポートをスキャンし、接続されている利用可能なCOMポートをプルする機能を持っています。私はこれらのCOMポートをオプションメニューの異なる選択肢としてリストしたいと思います。このコードを実行すると、利用できる唯一のオプションはCOM2 COM4です。これを2つの異なるオプションに分ける簡単な方法はありますか?私はオプションメニューにリストを設定する方法だけを探しているのではなく、私が持っているデータをリストに変換する方法を探しています。ありがとう。変数からオプションメニューへの入力

global model 
    model = StringVar(master) 
    self.option = StringVar() 
    w = OptionMenu(master, self.option,()) 

comポートのスキャンから、printステートメントは['COM2'、 'C​​OM4']を返します。

print(serial_ports()) 
    global com 
    com = list(serial_ports()) 
    self.option.set(com) 

以下は、comポートをスキャンするための完全なコードです。

def serial_ports(): 
     """ Lists serial port names 

      :raises EnvironmentError: 
       On unsupported or unknown platforms 
      :returns: 
       A list of the serial ports available on the system 
     """ 
     if sys.platform.startswith('win'): 
      ports = ['COM%s' % (i + 1) for i in range(256)] 
     elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'): 
      # this excludes your current terminal "/dev/tty" 
      ports = glob.glob('/dev/tty[A-Za-z]*') 
     elif sys.platform.startswith('darwin'): 
      ports = glob.glob('/dev/tty.*') 
     else: 
      raise EnvironmentError('Unsupported platform') 

     result = [] 
     for port in ports: 
      try: 
       s = serial.Serial(port) 
       s.close() 
       result.append(port) 
      except (OSError, serial.SerialException): 
       pass 
     return result 

    if __name__ == '__main__': 
     print(serial_ports()) 
     global com 
     com = serial_ports() 

     self.option.set(com) 
+0

[どのようにリストの項目でTkinterのオプションメニューを移入んが重複する可能性:

from tkinter import * root = Tk() var = StringVar() array = ["COM2", "COM4"] var.set(array[0]) OptionMenu(root, var, *array).pack() root.mainloop() 

はこれを読んでください。 ](https://stackoverflow.com/questions/18212645/how-do-populate-a-tkinter-optionmenu-with-items-in-a-list) –

+0

これは私の質問を解決しない、私はどのように知っている必要がありますo私が持っているものをオプションメニューに入れることができるリストに変換する。上のリンクはあなたがすでにリストを持っていることを前提としています。私はそれをリストにするいくつかの方法を試しましたが、これまでのところ成功していませんでした。ありがとう –

+0

Pythonのリストの規則に従う '['COM2'、 'C​​OM4']'はリストではありませんか?あなたはそれを反復しようとしましたか? –

答えて

関連する問題