【Python】ボタンをクリックしたら設定した文字列がクリップボードに保存されるソフト


はじめに

今回が初投稿の記事になります。改善点等があれば教えてもらえると幸いです。

最初は「パスワード管理ツール」という名前にしようと思いましたが、セキュリティ面や汎用性からこのようなタイトルになってしまいました...

もし、いい名前や説明方法が思いついたら教えてもらえると嬉しいです!

今回作成したもの

以下の画像になります。ボタンの色がうるさいのと見た目が…

各ボタンを押すと設定した文字列がクリップボードに保存されます。パスワードやよく使う文字列を設定しておくと便利だと思います。

百聞は一見に如かずと言うので実行してみてください。

ソースコード

以下の画像がディレクトリ構造になります。この通りファイルを配置してもらえると実行できると思います。

main.py
# 標準ライブラリ
import configparser
import tkinter as tk

# サードパーティ製ライブラリ
import pyperclip

# アプリケーションクラス
class Application(tk.Frame):
    def __init__(self, master):
        super().__init__(master)
        master.geometry('388x310')
        master.title('Password Tools')
        self.Username, self.Password, self.Color = Config().Get_Data()
        self.create_button(master)

    def create_button(self, master):
        for i in range(0, 6):
            button = tk.Button(text=self.Username[i], width=50, height=2, bg=self.Color[i])
            button.bind('<Button-1>', self.click_button)
            button.place(x=13, y=5+i*50)

    def click_button(self, event):
        index = self.Username.index(event.widget['text'])
        pyperclip.copy(self.Password[index])

# コンフィグ操作クラス
class Config():
    def __init__(self):
        self.config = configparser.ConfigParser()
        self.config.read(r'.\UserSetting\config.ini', encoding='UTF-8')

    def Get_Data(self):
        Username = []
        Password = []
        Color = []
        for i in range(1, 7):
            Username.append(self.config.get('P-{}'.format(i), 'Username'))
            Password.append(self.config.get('P-{}'.format(i), 'Password'))
            Color.append(self.config.get('P-{}'.format(i), 'Color'))
        return Username, Password, Color

def main():
    App = Application(master=tk.Tk())
    App.mainloop()

if __name__ == '__main__':
    main()

私の環境はwindows10です。"MacOS"または"Linux"の方は以下の文を変更してから実行してください。

main.py
# MacまたはLinuxの方はパスの部分を書き換えてから実行しないとエラーになります。

# windows
self.config.read(r'.\UserSetting\config.ini', encoding='UTF-8')
  
# Mac or Linux
self.config.read(r'./UserSetting/config.ini', encoding='UTF-8')

「config.ini」でユーザが設定をします。
Username ← ボタンのタイトル名
Password ← クリックしたときにクリップボードに保存される文字列
Color ← ボタンの色(カラーコード)の設定
※カラーコードは別のサイト等を参考してください。
今回参考にしたサイト→https://www.colordic.org/

config.ini
[P-1]
Username = 1u
Password = 1p
Color = #c0c0c0

[P-2]
Username = 2u
Password = 2p
Color = #c0c0c0

[P-3]
Username = 3u
Password = 3p
Color = #c0c0c0

[P-4]
Username = 4u
Password = 4p
Color = #c0c0c0

[P-5]
Username = 5u
Password = 5p
Color = #c0c0c0

[P-6]
Username = 6u
Password = 6p
Color = #c0c0c0

最後に

pyinstallerやcx_freezeなどを使用してexeファイル化できるのでもしよかったらexeファイル化して使ってください!

良く打ち込むコマンドや定型文を保存すると楽でいいと思います。

リクエストなどももらえると嬉しいです。自分ができる範囲であれば投稿したいと考えています。