-----------------------------------------------------------------------------
音声認識【250209追記】
-----------------------------------------------------------------------------
ネットも生成AIもなしで話し相手ロボットを作ろう☆音声認識モジュール使ってみた
千代子のチャレンジ工房さん動画
MicroPython I2C library and example for Gravity: Offline Language Learning Voice Recognition Sensor
以下、追記前と同じ
-----------------------------------------------------------------------------
Tkinter
-----------------------------------------------------------------------------
■【Tkinterの使い方】PythonでのGUIアプリ作成方法をわかりやすく解説!
https://pythonsoba.tech/tkinter/
■Entryを使い入力フォームを作成する方法
https://little-movie.com/entry/
import tkinter as tk
root = tk.Tk()
root.title('Entry')
root.geometry('300x300')
entry = tk.Entry(root, width=20)
entry.pack(pady=10)
root.mainloop()
Entry()’クラスの引数は以下の通りです。
‘master’-このフレームを配置するウィンドウまたはフレームの親要素。
‘width’-ウィジェットの横幅(文字数)。
‘textvariable’-Entryウィジェットに関連付けられた文字列変数。
‘show’-入力された文字を置き換える文字。
‘bg’-背景色。
‘fg’-前景色。
‘font’-フォントの指定。
‘relief’-ウィジェットの枠線のスタイルを指定。
‘borderwidth’-ウィジェットの枠線の幅を指定。
先ほど作成したフォームには引数に親ウィンドウの’root’を指定し、’width’を追加し幅を20文字の長さにしています。
■入力されたテキストを受け取る方法
Entryでユーザーから入力された内容を受け取るには、’get()’メソッドを使用します。
例えば、フォームにテキストを入力し、ボタンを押すことでコンソール上に入力した内容をsyつ力する場合は下記コードのようになります。
import tkinter as tk
def get_entry():
print(entry.get())
root = tk.Tk()
root.title('Entry')
root.geometry('300x300')
entry = tk.Entry(root, width=20)
entry.pack(pady=10)
button = tk.Button(root, text='受け取る', command=get_entry)
button.pack()
root.mainloop()
■[Python/Tkinter] Enterキーで処理を実行する方法(Enter入力を取得)
https://tomtom-stock.com/2023/02/03/tkinter-enter-return/
今回は、Tkinter上に作成したテキストボックスに入力した内容を “Enter” キーのクリックで表示させる方法を解説していきます!
Enter入力とウィジェットを紐づける
キーボード入力とTkinter上のウィジェットを紐づけるためには、.bind() メソッドを使用します。
Enterキーを紐づける場合はイベントに <Return> を指定します。
ウィジェット名.bind("<Return>", 関数名)
■Entry入力中にEnterキーで処理実行
https://zackblog7.com/%E3%80%90tkinter%E3%80%91entry%E5%85%A5%E5%8A%9B%E4%B8%AD%E3%81%ABenter%E3%82%AD%E3%83%BC%E3%81%A7%E5%AE%9F%E8%A1%8C/
import tkinter as tk
def enter_key():
print("実行!")
root = tk.Tk()
root.geometry("200x200")
x = tk.Entry(root, width = 10)
x.pack()
x.bind("<Return>", lambda event: enter_key())
root.mainloop()
-----------------------------------------------------------------------------
OS自動アップデート停止
-----------------------------------------------------------------------------
■Windows11の自動アップデートを無効化する方法
https://jp.easeus.com/todo-backup-resource/how-to-stop-auto-update-windows-10.html
サービスででWindows Updateを無効にする
1.win + Rを同時に押して、services.mscを入力してエンターキーを押します。
2.サービスのウィンドウが表示されます。サービスのリストからWindows Updateを選択、ダブルクリックしてください。
3.「全般」タブで「スタートアップの種類」オプションの隣にあるドロップダウンアイコンをクリックし、「無効」オプションを選択します。
4.「適用」をクリックし、「OK」をクリックし、変更を適用します。それによって、Windows 11の自動更新が永久に無効になるようになります。
※この操作は、Windows Updateサービスを完全に無効にするので、Windowsは更新をダウンロード&インストールしないようになります。後ほどアップデートしたい場合は、同じ画面で再び有効化にする必要があります。
-----------------------------------------------------------------------------
MS-IME無効化
-----------------------------------------------------------------------------
■Windowsで「Microsoft IME」を無効にする方法
[ATOK]や[Google日本語入力]などのIMEを使用している場合、Windows 11やWindows 10にプリインストールされている【Microsoft IME】は無効にしておくと使い勝手が良いかもしれません。
設定の[時刻と言語]>[言語と地域]>[日本語]>[…]より
【言語のオプション】をクリック
↓
オプションの[キーボード]>[Microsoft IME]>[…]より【削除】クリック。
-----------------------------------------------------------------------------
PythonでIME全角半角切替え
-----------------------------------------------------------------------------
■pythonでIME(半角・全角)を切り替える方法
https://zenn.dev/dimebag29/articles/b51599c8906624
外部ライブラリのpynputによる仮想キー入力によってIMEを切り替え
from pynput import keyboard
import time
KeyCon = keyboard.Controller()
# IMEをオンにする
KeyCon.press(keyboard.KeyCode.from_vk(243))
KeyCon.release(keyboard.KeyCode.from_vk(244))
time.sleep(3)
# IMEをオフにする
KeyCon.press(keyboard.KeyCode.from_vk(244))
KeyCon.release(keyboard.KeyCode.from_vk(243))
-----------------------------------------------------------------------------
開いたEXCELにPythonから入力
-----------------------------------------------------------------------------
pywin32・win32com.clientを使ってPythonで起動済みExcelを操作する
https://www.relief.jp/docs/pywin32-operate-running-excel-from-python.html
import win32com.client
xl = win32com.client.GetObject(Class="Excel.Application")
xl.Windows(1).Top = 30
xl.Windows(1).Left = 20
xl.Range("A1").Value = "hello, world!"
xl.Range("A2").Value = "test OK?"
str_input = input()
print(str_input)
xl.Range("A3").Value = str_input
-----------------------------------------------------------------------------
Pywin32の使い方【抜粋】
-----------------------------------------------------------------------------
Python pywin32(win32com)Excel操作備忘録
https://qiita.com/feo52/items/150745ae0cc17cb5c866
# Excel起動
xlApp = win32com.client.Dispatch("Excel.Application")
# https://stackoverflow.com/questions/2790825/
# ExcelのWindow最大化
win32gui.ShowWindow(xlApp.hwnd, win32con.SW_MAXIMIZE)
# Excel表示
xlApp.Visible = 1
# Excelファイルオープン
wb = xlApp.Workbooks.Open(f"{os.getcwd()}\\sample.csv")
# Excelシートオブジェクト
ws = wb.Worksheets(1)
# ------------------------------------------------------------------
# 指定したシートを選択
# Select()の使用前にシートのActivate()が必要
ws.Activate()
# ------------------------------------------------------------------
# A1セルを選択
ws.Range("A1").Select()
# A1~B2を選択
ws.Range("A1:B2").Select()
# A1セルを選択
ws.Cells(1, 1).Select()
# A1~B2を選択
ws.Range(ws.Cells(1, 1), ws.Cells(2, 2)).Select()
# ------------------------------------------------------------------
# 全セルを選択
ws.Cells.Select()
# A1セルに値を設定
ws.Range("A1").Value = 99999
# A1セルに数式を設定
ws.Range("A1").Formula = "=(3.14159-3)*100000"
# ------------------------------------------------------------------
# A1セルの表示形式を設定
ws.Range("A1").NumberFormatLocal = "0.00"
# A1セルにフォントを設定
ws.Range("A1").Font.Name = "Yu Gothic UI"
# A1セルのフォントのサイズを設定
ws.Range("A1").Font.Size = 12
# A1セルのフォントを太字に設定
ws.Range("A1").Font.Bold = True
# A1セルのフォントを斜体に設定
ws.Range("A1").Font.Italic = True
# A1セルのフォントに下線を設定
ws.Range("A1").Font.Underline = xlUnderlineStyleSingle
# A1セルのフォントに取消線を設定
ws.Range("A1").Font.Strikethrough = True
# ------------------------------------------------------------------
# A1セルの文字の色を設定(R+Gx256+Bx256x256)
ws.Range("A1").Font.Color = 255 + 0 * 256 + 0 * 256 * 256
# A1セルの文字の色を設定(指定順序BGR)
ws.Range("A1").Font.Color = int("FF0000", 16)
# A1セルの文字の色を設定(指定順序RGB)
ws.Range("A1").Font.Color = int("".join(list(reversed(["FF0000"[i : i + 2] for i in range(0, 6, 2)]))), 16)
# A1セルの文字の色を設定(デフォルト)
ws.Range("A1").Font.ColorIndex = xlColorIndexAutomatic
# ------------------------------------------------------------------
# A1セルの背景の色を設定(R+Gx256+Bx256x256)
ws.Range("A1").Interior.Color = 255 + 255 * 256 + 0 * 256 * 256
# A1セルの背景の色を設定(指定順序BGR)
ws.Range("A1").Interior.Color = int("FFFF00", 16)
# A1セルの背景の色を設定(指定順序RGB)
ws.Range("A1").Interior.Color = int("".join(list(reversed(["FFFF00"[i : i + 2] for i in range(0, 6, 2)]))), 16)
# A1セルの背景の色を設定(デフォルト)
ws.Range("A1").Interior.ColorIndex = xlColorIndexNone
# A1セルの値や数式を消去
ws.Range("A1").ClearContents()
# シートの非表示
ws.Visible = xlSheetHidden
# シートの表示
ws.Visible = xlSheetVisible
# ------------------------------------------------------------------
# シートの保護の設定
ws.Protect()
# シートの保護の解除
ws.Unprotect()
# シートをパスワード付きで保護の設定
ws.Protect(Password="hoge")
# シートのパスワード付きの保護の解除
ws.Unprotect(Password="hoge")
# ------------------------------------------------------------------
# ブックの保護の設定
wb.Protect()
# ブックの保護の解除
wb.Unprotect()
# ブックをパスワード付きで保護の設定
wb.Protect(Password="hoge")
# ブックのパスワード付きの保護の解除
wb.Unprotect(Password="hoge")
# 再計算
ws.Calculate()
# 再計算
xlApp.Calculate()
# Excelの警告メッセージの表示の停止
xlApp.DisplayAlerts = False
# Excelの警告メッセージの表示の開始
xlApp.DisplayAlerts = True
# Excelの画面の更新を停止
xlApp.ScreenUpdating = False
# Excelの画面の更新を開始
xlApp.ScreenUpdating = True
# https://stackoverflow.com/questions/3735378/#8561483
# Excelの画面の更新を強制
xlApp.ActiveWindow.SmallScroll()
xlApp.WindowState = xlApp.WindowState
# ------------------------------------------------------------------
# ActiveWorkbookの取得
wb = xlApp.ActiveWorkbook
print(wb.Name)
# ActiveWindowの取得
aw = xlApp.ActiveWindow
print(aw.Caption)
# ActiveSheetの取得
ws = xlApp.ActiveSheet
print(ws.Name)
# ActiveSheetの取得
ws = wb.ActiveSheet
print(ws.Name)
# ブックをファイルに上書き保存
# wb.Save()
# ブックをXLSXファイルに保存
wb.SaveAs(Filename=f"{os.getcwd()}\\outputSaveAs.xlsx", FileFormat=xlOpenXMLWorkbook)
# ブックをXLSファイルに保存
wb.SaveAs(Filename=f"{os.getcwd()}\\outputSaveAs.xls", FileFormat=xlWorkbookNormal)
# ブックをCSVファイルに保存
wb.SaveAs(Filename=f"{os.getcwd()}\\outputSaveAs.csv", FileFormat=xlCSV)
# ------------------------------------------------------------------
# ブックをクローズ
# wb.Close()
# ブックを保存せずにクローズ
wb.Close(SaveChanges=False)
# ------------------------------------------------------------------
# Excel終了
xlApp.Quit()