マイクロビューアー

ランチャーから数行のメモを開く場合、通常のテキストエディタだと大げさなのでテキストファイルビューアーを作ってみました。

使っている様子

以下のようにランチャーからメモを選択します。

こんな感じに小さく開きます。

コマンドラインからファイル名、横サイズ、縦サイズ、フォントサイズ、フォント名が指定できます。

実行ファイル

セットアップ

ファイルを適当なフォルダに展開する

C:\tools\viewer など

viewer.exe を Orchis にドラッグアンドドロップする。

右クリックして、項目の設定を選択する

基本設定で、項目名、アイコンを設定する。アイコンは参照から標準で色々選べる。

続いて、項目の実行のパラメータでファイル名などを設定する

ファイル名のほかに以下のオプションが設定可能です。

  • –width WIDTH : 幅
  • –height HEIGHT : 高さ
  • –fontsize FONTSIZE :フォントサイズ
  • –fontname FONTNAME : フォント名

例:

c:\test.txt --width 640 --height 120 --fontsize 16 --fontname "MSゴシック"

ソースコード

import tkinter as tk
from tkinter import scrolledtext
import argparse
import sys
import os

def open_file_from_path(file_path):
    if os.path.isfile(file_path):
        try:
            with open(file_path, 'r', encoding='utf-8') as file:
                content = file.read()
                text_area.delete(1.0, tk.END)
                text_area.insert(tk.END, content)
        except Exception as e:
            text_area.insert(tk.END, f"ファイルの読み込み中にエラーが発生しました:\n{e}")
    else:
        text_area.insert(tk.END, "ファイルが見つかりませんでした。")

# コマンドライン引数の処理
parser = argparse.ArgumentParser(description="テキストファイルビューア")
parser.add_argument("filepath", nargs="?", help="表示するテキストファイルのパス")
parser.add_argument("--width", type=int, default=300, help="ウィンドウの幅")
parser.add_argument("--height", type=int, default=60, help="ウィンドウの高さ")
parser.add_argument("--fontsize", type=int, default=14, help="フォントサイズ")
parser.add_argument("--fontname", type=str, default="FixedSys", help="フォント名")
args = parser.parse_args()

# GUIセットアップ
root = tk.Tk()
root.title("マイクロビューアー")
root.geometry(f"{args.width}x{args.height}")

# フォント設定
text_font = (args.fontname, args.fontsize)

# テキストエリア
text_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, font=text_font)
text_area.pack(expand=True, fill='both')

# ファイルが指定されていたら開く
if args.filepath:
    open_file_from_path(args.filepath)

root.mainloop()

exe ファイルにする方法

ライブラリの追加

pip install pyinstaller

exeファイルにする

pyinstaller --onefile --windowed viewer.py

アイコンの指定が面倒なら.icoファイルを用意しておいて以下のように実行する

pyinstaller --onefile --windowed --icon=your_icon.ico viewer.py

おわりに

ここまで書いて、Clibor の定型文でも良いことに気が付きました。