PySimpleGUIを使ってシリアル通信を行おうとしています。
現在は以下のようにcomポートを取得したあと、sg.Comboに一つずつ追加しています。
python
1import PySimpleGUI as sg 2import serial 3import serial.tools.list_ports 4 5#comポートを取得 6coms = serial.tools.list_ports.comports() 7comlist = [] 8for com in coms: 9 comlist.append(com.device) 10 11# layoutの作成 12layout = [ 13 [sg.Text('コンソールポート'), sg.Combo(str(comlist[0]),str(comlist[1]), size=(10, 1))] 14 ] 15 16window = sg.Window('サンプルプログラム', layout)
これではcomポートが1つしかない場合にエラーとなったり3つ以上の場合は表示されないものが出来たりという問題があります。
取得したcomポートの数に合わせてドロップダウンリストの要素数を変更したいのですがどのような方法がありますか?
現在は以下のようにcomポートリストの長さを取得してif文で分岐していますがリスト数が大きくなるとさすがに長いコードになってしまうので他に方法はないかなと...
python
1length = len(comlist) 2 3if length == 1: 4 layout = [[sg.Text('コンソールポート'), sg.Combo(str(comlist[0]), size=(10, 1))]] 5elif length == 2: 6 layout = [[sg.Text('コンソールポート'), sg.Combo(str(comlist[0]),str(comlist[1]), size=(10, 1))]] 7
何かいい方法はありますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 07:58