※この記事で紹介する方法はあくまで自己流です。セキュリティ面でのリスクがあるので、一般向けにデプロイするソフトウェアなどには極力使用を避けた方が良いと思います。
1.概要
Tkinterを使ってGUIソフトを作っている時、ユーザーがGUI内の要素・ウィジェットを増減させられるようにしようとしました。ネットで調べてみたところ、
・ウィジェットを非表示にしておき、適宜表示を切り替える
・クラスで管理する
等の方法が見つかったのですが、下の理由で却下しました。
・追加できるウィジェット数に上限がある
・単純にクラス構文が嫌い(インスタンスが増えていくのがなんか嫌)
一部、超個人的な理由が入っていますが許してください。
これら以外の手段を考えた結果、下の結論に至りました。
辞書で管理する
簡単に言えば、dict型でウィジェットを管理し、辞書の各要素のキーとして各ウィジェットの一意のIDを、その内容としてリストを格納します。
そのリストにTkinterのウィジェットのインスタンスと、作成日時等のデータを格納します。
2.メリット・デメリット
この方法のメリット・デメリットについて自分の思いつく範囲内でご紹介します。
メリット
・外部モジュールを必要としない
・ウィジェットのキー・IDに様々な型を指定出来る
・外部ファイルへの保存が容易
デメリット
・機密性を要する情報の管理には向かない
・辞書内のデータを消去してもウィジェットのインスタンスはそのまま
・管理方法を変更する際に面倒
3.サンプルコード
現在製作中です!
近日追加します!