ryotankの備考録日記

趣味の電子工作についての備考録などなど

BOM日本語変換その2

取りあえずはGUIは完成したが、

メニューバーは廃止した
なぜなら、ファイルを変換する(厳密にいえば言語を置換する)ツールなので
わざわざメニューバーをつける意味がないから


あとは必要な機能を実装していくのみだ

GUIソースコードは以下になる

from tkinter import *
import PySimpleGUI as sg
from PySimpleGUI.PySimpleGUI import Input
from os.path import basename
import openpyxl

sg.theme('LightBlue7')

layout =  [
    [sg.Text('このGUIはKiCadで作成された部品表(BOM)の\n特定の文字を日本語に変換するものです', font='小塚ゴシック 18', pad=(20,20))],
    [sg.Text('csv形式だと変換できない為、まずはxls形式に直してください')],
    
    [sg.Text('まずはファイルを選択して下さい',font='小塚ゴシック 14', pad=(20,20))],
    [sg.InputText('ファイル名', enable_events=True, size=(50,4), font='小塚ゴシック 14'),
      sg.FileBrowse('ファイルを追加する', key='-FILES-', pad=(50,10),
  file_types=(('Excell ファイル', '*.csv'),) )],
    [sg.Button('ログをコピー'), sg.Button('ログをクリア')],
    [sg.Output(size=(100,8), key='-MULTILINE-')],
    [sg.T(' '*20)],
    [sg.Listbox([], size=(60,10), enable_events=True, key='-LIST-')],
    [sg.Button('読み込み', font='小塚ゴシック 17'), sg.T(' '*24), 
  sg.Button('csv形式からxlsに変換'), 
     sg.T(' '*30), sg.Button('日本語に変換する',font='小塚ゴシック 17')],
    [sg.Button('名前を変えて保存する', font='小塚ゴシック 17', pad=(30,30))]
]

window = sg.Window('KiCad部品表(BOM)の文字変換GUI', layout=layout)

[sg.InputText()]

#空のリスト
new_files = []

#空のリスト
new_file_names = []

#ループ
while True:
    event, values = window.read()

    if event in (None, '閉じる'):#ウィンドウの閉じる(バツボタン)を押した時の処理
        break


    if event == '読み込み':
        print('処理を実行')
        print('処理対象ファイル:', new_files)

        #ポップアップ
        sg.popup('処理が終了しました')
    elif event =='ログをクリア':
        print('ログをクリア')
        window.FindElement('-MULTILINE-').Update('')

    elif event =='ログをコピー':
        window.FindElement('-MULTILINE-').Widget.clipboard_append(window.FindElement('-MULTILINE-').Get())
        sg.popup('ログをコピーしました')

        new_files.clear()
        new_file_names.clear()
        window['-LIST-'].update('')
        
    elif values['-FILES-'] != '':
        print('FilesBrowse')

    new_file_names.extend([basename(file_path) for file_path in new_files])

    print('ファイルを追加')
    window['-MULTILINE-'].update(new_file_names) #アウトプットに表示する

window.close()