PySimpleGUIのcodingに役立つ諸々

python

PySimpleGUIヒント集 7/11/2025
PySimpleGUが有料化されたので、無料のFreeSimpleGUIでcodingすることにした。

import PySimpleGUI as sg import FreeSimpleGUI as sg と変更すれば殆どの場合動作する。

*CPU性能比較表 | 最新から定番のCPUまで簡単に比較
https://pcrecommend.com/cpu/

*installされているfileのverをアプリの中で調べる
 import PySimpleGUI as sg
 print(sg.version) ーーー> 5.10.10 7/8/2025現時点での最新版

*installされているfileのverを調べる
 C:\Users\xxx>pip show pysimplegui
  Name: PySimpleGUI
  Version: 4.70.1

*pipでどんなライブラリーがinstallされているか調べる
 C:\Users\xxxx> pip list <– 現在131個のライブラリーあり

*最新バージョンにアップグレードする
 pip install –upgrade PySimpleGUI

*二つのプログラムの違いを調べる
https://difff.jp/

*PySimpleGUIの基本部品(widget)の使い方
https://qiita.com/sunameri22/items/da002d628d7a28cd6e97

* windowの色合いは sg.theme(‘Kayak’) などで設定する
他に’LightBlue5’ ’DarkBlue1’ ’Tan’ など多数あり

* EXEファイルを作る, 写真などは別holderにして、exeに添付のこと
 pyinstaller xxx.py –onefile –noconsole

* EXEファイルを作る, 写真などのfileも一緒にEXE化する
 C:\Users\xxx\Desktop>pyinstaller –onefile –xxx.py

 *主なライブラリーの説明
import numpy:高速な数値計算・配列操作に特化
import pyaudio: 音声の録音・再生などオーディオ処理
import time:時間計測・遅延・タイマー
import threading:並列処理(複数の処理を同時に進める)
import random:乱数生成
import pygame:ゲーム開発向けのマルチメディアライブラリ(FSGにはX)
import sys:システム関連の機能を提供するライブラリ
import os:システム操作(終了、パラメータ取得など)
import copy:データの状態保存などに有効。
import numpy: 数値計算やデータ処理に特化したライブラリ
import threading: スレッドを扱うためのライブラリ
import pandas:表データをGUIで表示・操作する際にbest
import jaconv:ひらがな、カタカナ、全角、半角の相互変換を高速に行うことができる
* ボタンや部品の位置・font、色などを決める。
 [sg.Button(‘Button’, button_color=(‘blue’,’red’))]
 [sg.Button(‘Button’, pad=((300,0), (0,0))),
    sg.Text(‘Tak ver1.x’, font=(‘Helvetica,8’), pad=((100,0),(0,0)))]
 #padよりsg.Push()が便利。真ん中に置くにはsg.Push(), XXX, sg.Push()
* データとアプリが別holderにある時に読み込む方法
 data_file = os.path.join(“text_holder”, “100_poems.txt”) 
以下工事中 7/11/2025
# ボタンの動的作成(layoutへ作成する)
 [sg.Button(name) for name in url_link.keys() ],
 layout = [[sg.Text(‘test’, text_color=’Blue’, background_color=’White’, font=(‘Arial’,20))]]
# sg.InputTextにフォーカスをセットする
 window[‘-INPUT-‘].Widget.bind(‘<Enter>’, lambda e: window.TKroot.focus_force())
# 文字列の分割
 s_blank = ‘one two three\nfour\tfive’ #\nは段落、\tはtabで分割
 print(s_blank) # one two three # four five
 print(s_blank.split()) # [‘one’, ‘two’, ‘three’, ‘four’, ‘five’]
 print(type(s_blank.split()))
# 英文文字列をすべて大文字、小文字にする
 string.ascii_uppercase  —> ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’
 string.ascii_lowercase  —> ‘abcdefghijklmnopqrstuvwxyz’
# 日本語文字列をすべて小文字にする
 import jaconv
 text = “アイウエオ12345ABC”
 converted_text = jaconv.z2h(text, kana=True, digit=True, ascii=True)
  print(converted_text) —>出力: アイウエオ12345ABC
# ひらがなをカタカナにする
 import jaconv
 text = “こんにちは”
 converted_text = jaconv.hira2kata(text)
 print(converted_text) —># 出力: コンニチハ
# 文字のサイズ、色を決める
 layout = [[sg.Text(‘test’, text_color=’Blue’, background_color=’White’, font=(‘Arial’,20))]]
# 文字設定
 layout = [
  [ sg.Text(‘ここに表示させたい文字を入力’, font=(‘Times New Roman’,12,”bold”),text_color=(“#ffffff”))]]
# string.capitalize(文字列)  # 各単語の先頭を大文字にする
# string.lower(文字列)  # すべて小文字にする
# string.upper(文字列)  # すべて大文字にする
# string.join(リスト, セパレータ)  # リストを join する
# string.strip(文字列)  # 先頭と末尾の空白を削除する
# string.replace(文字列, 変更したい文字, 変更後の文字)  # 置換する
# 文章の文字をアプリ上で追加する
 formatter = string.Formatter()
 f.format(‘{0}は口に{1}’, ‘良薬’, ‘苦し’) —> ‘良薬は口に苦し’
# 複数ボタンを動的配置する
 button_texts = [“ボタン1”, “ボタン2”, “ボタン3”]
 layout = [ [sg.Button(button_texts[0]), sg.Button(button_texts[1]),
sg.Button(button_texts[2])]]
[sg.Button(button_texts[0]), sg.Button(button_texts[1]), sg.Button(button_texts[2])]
# popupを数秒後に消す
 ・sg.popup_auto_close(“5秒後に自動的に閉じるポップアップです”, title=”ポップアップ”, auto_close_duration=5)
# popup位置を動かせるようにする
 if popup_window:
   popup_event, popup_values = popup_window.read(timeout=100)
# mp3録音bitを変更する変更(128kbit–>64kbit)
 https://www.mp3smaller.com/jp/
# with open()でfileを読み込む
 ①with open(“All_208.txt”, “r”) as f: #,encoding=”utf-8″) as f:
    list = f.readlines()
  word_list = []
  for i in list:
     words = i.split(‘\t’) #tab区分file、文字列中の空白、カンマ、ピリオドなどは混入OK
     word_list.append(words)
 ②with open(“All_208.txt”, “r”) as f:
     word_list = [line.split(‘\t’) for line in f]
# line(txtファイルの)分割(sep)方法
 text_file = line.rstrip(“\n”).rsplit(“\t”) #rstrip(“\n”)は段落を取り除く,
    rsplit(“\t”)はtabで分割する。  tabの代わりにspaceでも句読点でもOK
# MenuBarの作り方
 layout=[ [sg.MenuBar([[‘ファイル’,[‘新規ファイル’,’ファイルを開く’,’ユーザー設定’,
           [‘設定’,’拡張機能’],’閉じる’]]])] ]
 layout= [ [sg.MenuBar([[‘使い方’,
     [‘「開始/次へ」で上の句に対応する下の句が下に四個表示されます。’,
    ‘正しいと思ったボタンをクリックすると回答が表示されます。’,’ ‘,’戻る’]]]
# パーツを左・中・右に寄せで配置する
 layout = [
    [frame_left, frame_right],
    [frame_bottom],
    [sg.Push(), sg.Text(‘Tak ver x’, text_color=’LightBlue’)], # 右寄せ
    [sg.Push(), sg.Text(‘Right-aligned’)], # 右寄せ, 背景色なし
    [sg.Push(), sg.Button(‘Center-aligned’), sg.Push()], # 中央寄せ, 背景色あり
    [sg.Text(‘Left-aligned’), sg.Push()]] # 左寄せ
————————–
 # 主なライブラリーの説明
import numpy
import pyaudio: 音声処理に関連するライブラリ
import time
import threading
import random:乱数生成に関する機能を提供する
import pygame
import sys:システム関連の機能を提供するライブラリ
import os
import copy
import pygame: ゲーム開発やマルチメディアアプリケーションの作成に適したライブラリ
import numpy: 数値計算やデータ処理に特化したライブラリ
import threading: スレッドを扱うためのライブラリ
imoport PyAutoGUI: 作例 # desktop_position_get.py 6/9/2025
Copilot:
多次元配列や行列演算、乱数生成などの機能を提供しています。
です。
録音や再生、音声のストリーミングなどを行う際に使用されます。
time: Pythonの標準ライブラリで、時間に関連する機能を提供します。
スリープやタイムスタンプの取得などに利用されます。
並行処理を実現するために使用されます。
random: 乱数生成に関する機能を提供します。
ランダムな値を必要とする場合に活用されます。
グラフィックス、音声、入力処理などをサポートします。
sys: です。
コマンドライン引数の取得やプログラムの終了などに使用されます。
PyAutoGUI : 作例 # desktop_position_get.py 6/9/2025
—————————–
# 現在のwindowの位置情報を取得する
x, y = window.current_location()
print(x, y)
——————————-
# sliderのlayout
layout = [
    [sg.Slider(range=(0, 100), default_value=50, orientation=’h’, size=(20, 20), key=’slider’)]]
——————————-
# ウインドウ位置
 win_location = (1000, 300)
 window = sg.Window(‘サンプル’, layout=layout, location=win_location)
 *windowのタイトルバーを表示しないが、windowを動かせるにする
 windowのlayoutで次を設定 –> no_titlebar=True, grab_anywhere=True, finalize=True
——————————-
# Pythonアプリを強制的にcloseする方法         10/19/2024
タスクマネージャーが簡易モードで表示されている場合は、左下にある「詳細」をクリック。
モーダル:「モーダル」は、Webサイトやアプリケーションのユーザーインターフェースにおいて、
特定の操作を行うために表示されるダイアログやウィンドウを指します。
通常、モーダルが表示されている間は、ユーザーはモーダル以外のコンテンツを操作できなくなります.
——————————-
これよりUM890
*サクラediterで印刷ページでコメントを赤色にする。 2/21/2025
・設定:タイプ別設定ー色指定ーコメントの文字色を赤に設定
・ファイル:印刷ページプレビューページ設定ーカラー印刷に☑
*IDLE のショートカットをデスクトップに作成する方法 5/17/2025
– Windows スタートメニューを開く
左下のスタートボタンをクリックするか、Winキーを押します。
– IDLE (Python 3.13 64-bit) を探す
「IDLE」と検索して、「IDLE (Python 3.13 64-bit)」を見つけます。
– ショートカットを作成する
IDLE のアイコンを右クリックして、「ファイルの場所を開く」を選択します。
– ショートカットのコピーを作成する
表示されたフォルダの中にある「IDLE (Python 3.13 64-bit)」のアイコンを右クリックし、「ショートカットの作成」を選びます。
– デスクトップに移動する
作成されたショートカットを右クリックして「コピー」を選択し、デスクトップの適当な場所で「貼り付け」ます。