Exemple #1
0
def make_window(theme):
    sg.theme(theme)

    layout = [
        [
            sg.Text("フォルダ"),
            sg.InputText(key=KEY_TARGET_FOLDER),
            sg.FolderBrowse(),
            sg.Checkbox("デバッグ出力を有効にする",
                        default=False,
                        pad=(20, 0),
                        key=KEY_ENABLE_DEBUGMODE),
        ],
        [sg.Submit("実行", key=KEY_EXEC_BUTTON)],
        [sg.Text("\n実行結果")],
        [sg.Multiline(size=(80, 12), key=KEY_EXEC_RESULT_OUTPUT)],
        [sg.Text("全パターン出力されます。適切なものを1つ選んで Twitter に投稿してください。")],
        [sg.Text("\n\nログ")],
        [sg.Output(size=(80, 12))],
    ]

    return sg.Window(f'fgogachacnt FGOガチャ結果スクショ集計 {version}', layout)
    def set_layout(self):
        """sets the layout of the entire GUI"""
        template = self.settings[defaults._template]
        source_dir = self.settings[defaults._source_dir]
        target_dir = self.settings[defaults._target_dir]
        operation = self.settings[defaults._operation]
        excludes = self.settings[defaults._excludes]
        includes = self.settings[defaults._includes]
        player_id = self.settings[defaults._player_id]
        tray = self.settings[defaults._tray]
        
        first_column_width = 30
        third_column_width = 50
        button_width = 9
        inner_space = 0.6

        radio_copy = sg.Radio('Copy', 'operation_group', key=defaults._copy)
        radio_move = sg.Radio('Move', 'operation_group', key=defaults._move)

        if operation == defaults._move:
            radio_move = sg.Radio('Move', 'operation_group', key=defaults._move, default=True)

        self.layout = [

            # Rename Operations
            [sg.Text('Rename Operations', font='Arial 12 bold')],
            [sg.Text('Rename Template', size=(first_column_width, 3)), sg.Multiline(default_text=template, size=(third_column_width, 3), do_not_clear=True, key=defaults._template)],
            [sg.Text('Replay Folder', size=(first_column_width, 1)), sg.InputText(default_text=source_dir, key=defaults._source_dir, do_not_clear=True, size=(third_column_width - button_width - inner_space, 1), change_submits=True), sg.FolderBrowse("Browse", size=(button_width, 1), initial_folder=source_dir, target=defaults._source_dir, auto_size_button=False)],
            [sg.Text('Destination Folder', size=(first_column_width, 1)), sg.InputText(default_text=target_dir, key=defaults._target_dir, do_not_clear=True, size=(third_column_width - button_width - inner_space, 1), change_submits=True), sg.FolderBrowse("Browse", size=(button_width, 1), initial_folder=target_dir, target=defaults._target_dir, auto_size_button=False)],
            [sg.Text('Player ID', size=(first_column_width, 1)), sg.InputText(default_text=player_id, key=defaults._player_id, size=(third_column_width - button_width - inner_space, 1)), sg.Button('Detect', target=defaults._player_id, size=(button_width, 1), key='Detect', auto_size_button=False)],
            
            
            # File Operation
            [sg.Text('File Operation', size=(first_column_width, 1)), radio_copy, radio_move],

            # divider
            [sg.Text(' ')],

            # Exclusions
            [sg.Text('Exclusions', font='Arial 14 bold')],
            [sg.Checkbox('Exclude Games with AI', default=excludes[defaults._ai], key=defaults._ai)],
            [sg.Checkbox('Exclude Custom Games', default=excludes[defaults._custom], key=defaults._custom)],
            [sg.Text('Exclude directories (separate by comma)', size=(first_column_width, 1)), sg.InputText(default_text=excludes[defaults._exclude_dirs], size=(third_column_width, 1), key=defaults._exclude_dirs)],

            # divider
            [sg.Text(' ')],

            # Inclusions
            [sg.Text('Inclusions', font='Arial 14 bold')],
            [sg.Text('Minimum Number of Players', size=(first_column_width, 1)), sg.InputText(default_text=includes[defaults._min_players], key=defaults._min_players, size=(third_column_width, 1))],
            [sg.Text('Maximum Number of Players', size=(first_column_width, 1)), sg.InputText(default_text=includes[defaults._max_players], key=defaults._max_players, size=(third_column_width, 1))],
            [sg.Checkbox('WoL Replays', key=defaults._wol, default=includes[defaults._wol])],
            [sg.Checkbox('HotS Replays', key=defaults._hots, default=includes[defaults._hots])],
            [sg.Checkbox('LotV Replays', key=defaults._lotv, default=includes[defaults._lotv])],

            # divider
            [sg.Text(' ')],

            # Matchups
            [sg.Text('Matchups', font='Arial 14 bold')],
            [sg.Text('Exclude Matchups (separate by comma)', size=(first_column_width, 1)), sg.InputText(default_text=excludes[defaults._exclude_matchups], size=(third_column_width, 1), key=defaults._exclude_matchups)],
            [sg.Text('Include Matchups (separate by comma)', size=(first_column_width, 1)), sg.InputText(default_text=includes[defaults._include_matchups], size=(third_column_width, 1), key=defaults._include_matchups)],
        
            # divider
            [sg.Text(' ')],

            # System Tray
            [sg.Checkbox('Automatically rename new replay files', key='tray', default=tray)],

            # divider
            [sg.Text(' ')],

            # Final Buttons
            [sg.Button('Rename', key='Rename'), sg.Save(), sg.Button('Default', key='Default'), sg.Exit()]
        ]
import os

#ログイン状態 0=ログインしてない 1=ログインしている
account = 0

#今いるパスの検出
path = os.getcwd()

#レイアウトの設定と起動
sg.theme('Material2')

frame1 = sg.Frame('Twitterのアカウント情報を入力してください',[[sg.Text('電話、メールまたはユーザー名')],
                  [sg.InputText('', size=(80, 1), key='LoginID')],
                  [sg.Text('パスワード')],
                  [sg.InputText('', size=(80, 1), key='LoginPASS')],
                  [sg.Checkbox('セッション情報をファイルに出力しますか?', default=False)],
                  [sg.Text('セッションファイル'), sg.Input(path + '/cookies.pkl', size=(40, 1)), sg.FileBrowse('ファイルを選択', key='inputFilePath')],
                  [sg.Button('ログイン', key='login'),sg.Button('ログアウト', key='logout'),sg.Button('セッションログイン', key='session_login')],]
                  )

frame2 = sg.Frame('\n項目選択',[[sg.Checkbox('全フォロワーブロ解', default=False)],
                  [sg.Checkbox('全リム', default=False)],
                  [sg.Checkbox('Bio削除', default=False)],
                  [sg.Checkbox('ミュート、ブロック解除', default=False)],
                  [sg.Checkbox('連携解除', default=False)],
                  [sg.Checkbox('ツイ消し', default=False)],
                  [sg.Checkbox('ふぁぼ取り消し', default=False)],
                  [sg.Checkbox('DM削除', default=False)],
                  [sg.Button('利用規約を確認', key='terms'),sg.Checkbox('利用規約に同意する', default=False)],
                  [sg.Button('操作開始', key='start')],]
                  )