任意の文字列をQRコード化する機会が増えてきたため
QRコード画像を出力するGUIアプリを作成しました
Pythonを利用してGUIアプリを作ってみましょ!
この記事でわかること
・GUIアプリ作成方法
・QRコード画像の出力方法
・GUIアプリ作成方法
・QRコード画像の出力方法
GUIアプリの操作手順
3ステップで、QRコード画像の出力が可能です!
操作手順
・QRコード化したい文字列を入力
・出力するQRコード画像ファイル名を入力 (デフォルトresult)
・QRコード出力ボタンをクリックQRコード画像がされる
・QRコード化したい文字列を入力
・出力するQRコード画像ファイル名を入力 (デフォルトresult)
・QRコード出力ボタンをクリックQRコード画像がされる
ソースコードの解説
Import
1 2 3 4 |
import tkinter from tkinter import messagebox import qrcode import os |
tkinter | GUIを構築・操作 |
messagebox | メッセージボックス |
qrcode | QRコード生成 |
os | OSに依存する機能(パスの取得に使用) |
GUIとは、Graphical User Interfaceの略です
定数
1 2 3 4 |
#QRコード画像デフォルトファイル名 QR_DEFAULT_FILE_NAME = 'result' #QRコード拡張子 QR_FILE_EXTENSION = '.png' |
デフォルトのファイル名と拡張子を定数化
関数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#QRコード作成 def createQrCode(str,fileName): if str == "" or fileName == "": messagebox.showinfo("確認", "文字列またはファイル名が未入力です。") else: #QRコード化したい文字列を設定 img = qrcode.make(str) #画像ファイルを保存 img.save(fileName + QR_FILE_EXTENSION) resultPath = getOutPutQrCodePath(fileName) #完了メッセージ messagebox.showinfo("確認", "QRコードを出力しました。" + resultPath) #出力したファイルパスの取得 def getOutPutQrCodePath(fileName): path = os.getcwd() return path + '\\' + fileName + QR_FILE_EXTENSION |
createQrCode
QRコード画像を作成する関数
QRコード化したい文字列またはファイル名の指定が無ければ「未入力です」メッセージダイアログを表示
QRコード化画像ファイルを保存
完了メッセージダイアログに出力したファイルパスを表示
getOutPutQrCodePath
出力したファイルパスを取得する関数
tkinterを利用してGUI画面の作成
GUI画面をつくります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
root = tkinter.Tk() #タイトル root.title('QRコード変換') #ウインドウサイズ root.geometry("800x250") #QRコード化したい文字列 lblQrStr = tkinter.Label(text='QRコード化したい文字列を入力して下さい。') lblQrStr.place(x=30, y=40) txtStr = tkinter.Entry(width=120) txtStr.place(x=30, y=70) #ファイル名の指定 lblFileName = tkinter.Label(text='ファイル名を指定して下さい、') lblFileName.place(x=30, y=100) txtFileName = tkinter.Entry(width=50) txtFileName.place(x=30, y=130) txtFileName.insert(tkinter.END,QR_DEFAULT_FILE_NAME) lblFileExtension = tkinter.Label(text=QR_FILE_EXTENSION) lblFileExtension.place(x=340, y=130) #QRコード出力実行ボタン button = tkinter.Button(root,text = 'QRコード出力', font=("",18), fg='#000000', width= 20, height = 2, command = lambda:createQrCode(txtStr.get(),txtFileName.get())) button.pack(side=tkinter.BOTTOM, padx=30, pady=10) # メインループ root.mainloop() |
サンプルソース全文
サンプルの全文です
コピペで動きます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import tkinter from tkinter import messagebox import qrcode import os ######################################### # 定数 ######################################### #QRコード画像デフォルトファイル名 QR_DEFAULT_FILE_NAME = 'result' #QRコード拡張子 QR_FILE_EXTENSION = '.png' ######################################### # 関数 ######################################### #QRコード作成 def createQrCode(str,fileName): if str == "" or fileName == "": messagebox.showinfo("確認", "文字列またはファイル名が未入力です。") else: #QRコード化したい文字列を設定 img = qrcode.make(str) #画像ファイルを保存 img.save(fileName + QR_FILE_EXTENSION) resultPath = getOutPutQrCodePath(fileName) #完了メッセージ messagebox.showinfo("確認", "QRコードを出力しました。" + resultPath) #出力したファイルパスの取得 def getOutPutQrCodePath(fileName): path = os.getcwd() return path + '\\' + fileName + QR_FILE_EXTENSION ######################################### # GUI画面 ######################################### root = tkinter.Tk() #タイトル root.title('QRコード変換') #ウインドウサイズ root.geometry("800x250") #QRコード化したい文字列 lblQrStr = tkinter.Label(text='QRコード化したい文字列を入力して下さい。') lblQrStr.place(x=30, y=40) txtStr = tkinter.Entry(width=120) txtStr.place(x=30, y=70) #ファイル名の指定 lblFileName = tkinter.Label(text='ファイル名を指定して下さい、') lblFileName.place(x=30, y=100) txtFileName = tkinter.Entry(width=50) txtFileName.place(x=30, y=130) txtFileName.insert(tkinter.END,QR_DEFAULT_FILE_NAME) lblFileExtension = tkinter.Label(text=QR_FILE_EXTENSION) lblFileExtension.place(x=340, y=130) #QRコード出力実行ボタン button = tkinter.Button(root,text = 'QRコード出力', font=("",18), fg='#000000', width= 20, height = 2, command = lambda:createQrCode(txtStr.get(),txtFileName.get())) button.pack(side=tkinter.BOTTOM, padx=30, pady=10) # メインループ root.mainloop() |
GUIアプリのexe化
exe化しちゃいましょう!
exe化の手順はこちらの記事で詳しく解説しています
exe化の手順
・Pyinstallerインストール
・exe化したいPythonファイルへ移動
・exe化の実行
・Pyinstallerインストール
・exe化したいPythonファイルへ移動
・exe化の実行
Pyinstallerのインストール
次のコマンドを実行します
1 |
pip install pyinstaller |
exe化の実行
Pythonファイルパスは次のようにしています
C:\Python\gui\convert-qr-code.pyw
拡張子を「.py」→ 「.pyw」にすることで
GUIアプリ実行時に表示されるコンソール画面を非表示にできます
次の通りコマンドを実行して下さい
1 2 3 |
C:\Python\gui\ pyinstaller convert-qr-code.pyw --onefile |
successfully. と表示されれば成功です
Exeファイルは「dist」フォルダに出力されていますね
まとめ:GUIアプリにより簡単操作でQRコード生成が可能
GUIアプリにより直観的な操作が可能です
さらにexe化することで、使いやすさも向上しますね
まとめ
・tkinter…GUIを構築・操作するモジュール
・Pyinstaller…exe化するためのモジュール
・.pyw…「.py」→「.pyw」コンソール画面非表示
・tkinter…GUIを構築・操作するモジュール
・Pyinstaller…exe化するためのモジュール
・.pyw…「.py」→「.pyw」コンソール画面非表示
コメント