PySimpleGuiはじめました。 Python GUI のラッパー。
UEへのAlembicバッチインポーターを作るに当たり、
PythonのGUIを作成したいってことで、
PyQtを考えてたけど、正直今まで使いこなせてなかったのと
将来性を考えて → PySimpleGuiを使ってみよう!
インストールからいろはこちらで
早速やりたいこと
・ファイルオープンダイアログ
・ファイルパスを複数リスト化
・各ファイルに応じた文字列(UEへのインポートフォルダ)の欄
・シンプルなボタン
以上。
Windowの可変は resizable=True
Widgetの可変は keyを事前に設定、windowsをfinalize、expand
https://pysimplegui.readthedocs.io/en/latest/#finalize-or-window-parameter-finalizetrue
https://novnote.com/pysimplegui-tips/617/#i-5
今日の成果・・・Tableにして、テキストボックスにして、、
あー!ListBoxじゃなくて編集できるようにTextBoxにしたい!
あー!読み込み先のパス表示できるようにTableにしたい!
# 元のファイル https://pysimplegui.trinket.io/demo-programs#/examples-for-reddit-posts/visual-basic-mockup
import PySimpleGUI as sg
from os.path import basename
#frame1 = [[sg.Radio('1ファイルにシートごとにまとめる', 1, key='-MULTI-SHEET-', default=True)],
# [sg.Radio('1ファイル1シートにまとめる', 1, key='-ONE-SHEET-')]]
layout = [[sg.Text('Set Alembic Files', size=(15, 1), justification='left'),
sg.InputText('enter file path', enable_events=True,key='-PATH-'),
sg.FilesBrowse('Brows', size=(10,1),key='-FILES-', file_types=(('Alembic ファイル', '*.abc'),))],
#[sg.Button('ログをコピー'), sg.Button('ログをクリア')],
#[sg.Output(size=(100, 5), key='-MULTILINE-')],
#[sg.Button('入力一覧をクリア')],
[sg.Listbox([], size=(50, 2), enable_events=True, key='-LIST-')],
[sg.Button('Import',key="key_btn_import")]
]
window = sg.Window('AbcBatchImport', layout,resizable=True,finalize=True)
#window["-PATH-"].expand(expand_x=True, expand_y=False) # ウィンドウサイズに応じて入力エリアを可変に
window["-LIST-"].expand(expand_x=True, expand_y=True) # ウィンドウサイズに応じて入力エリアを可変に
new_files = []
new_file_names = []
while True: # Event Loop
event, values = window.read()
if event == sg.WIN_CLOSED:
break
elif event == 'key_btn_import':
if values['-FILES-'] != '':
print('FilesBrowse')
# TODO:実運用には同一ファイルかどうかの処理が必要
new_files.extend(values['-FILES-'].split(';'))
new_file_names.extend([basename(file_path) for file_path in new_files])
print('ファイルを追加')
window['-LIST-'].update(new_file_names) # リストボックスに表示します
window.close()
0 コメント:
コメントを投稿