タイトルのテキスト
タイトルのテキスト
タイトルのテキスト
タイトルのテキスト

Pythonで特定の情報を入力するとQRコードを作るプログラム

Python

t f B! P L

 Pythonで特定の情報を入力するとQRコードを作るプログラム仕事をしていて、製品の情報をQRコード化しなくてはいけなくなりました。

AccessとExcelの合わせ技でQRコードを作ることができるのですが、日本語をQRコードに埋め込むことができません。

なのでPythonで情報を入れるとそれに適したQRコードが作られるコードをつくりました。

〇やりたいこと

製品コードと製造日を入力すると、それに適した情報をQRコード化し、画像を保存、プリントアウトして現場に配布という作業を行いたいです。

〇作ったコード

コピーする場合はインデックスの位置に注意してください。

Pythonのコード

import qrcode

import tkinter

 

def bclick():

    a = str(txt.get())

    b = str(txt2.get())

    rt.destroy()

    if a=="製品コード1":

        a="QRコードの中身1"+b

        c=a.encode("shift_jis")

    elif a=="製品コード2":

            a=" QRコードの中身2"+b

            c=a.encode("shift_jis")           

    else:

        print("情報を間違えていませんか?")       

    img = qrcode.make(c)

img.save("製品QRコード.png")

    img.show()

rt = tkinter.Tk()

rt.geometry("500x300")

rt.title("情報取得")

lbl = tkinter.Label(text="製品コード")

lbl.place(x=30, y=70)

lbl2 = tkinter.Label(text="製造日")

lbl2.place(x=30, y=150)

txt = tkinter.Entry(width=40)

txt.place(x=130, y=70)

txt2 = tkinter.Entry(width=40)

txt2.insert(0,"テンプレートにした情報")

txt2.place(x=130, y=150)

btn = tkinter.Button(rt, text="取得", command= bclick)

btn.place(x=335, y=200)

rt.mainloop()      

〇コードの解説

上記のコードを動かすと・・・ 

ユーザーフォームの画像

こんなユーザーフォームが表示されます。

このユーザーフォームのテキストボックスに情報を入力して、取得ボタンを押すと・・・

qrコードの画像

こんな感じでQRコードが表示されてデスクトップに画像ファイルとして保存されます。

スマホで読み取ると“製品情報”という中身が表示されます。

以下がコードの詳細な解説です。

//今回使用するライブラリ、モジュールをインポートしています。

import qrcode

import tkinter

//tkインターで作るユーザーフォームの関数です。

//関数名です

def bclick():

//テキストボックスの値を変数に代入

    a = str(txt.get())

    b = str(txt2.get())

//ユーザーフォームを閉じる

    rt.destroy()

//製品コードの識別です。

//elif部を増やせば多くの情報に対応します。

    if a=="製品コード1":

        a="QRコードの中身1"+b

//日本語のQRコードを読み込めるようにエンコードでシフトJISに変換しています。

        c=a.encode("shift_jis")

    elif a=="製品コード2":

            a=" QRコードの中身2"+b

            c=a.encode("shift_jis")          

//品種コードになかった場合の処置です。

    else:

        print("情報を間違えていませんか?")       

//QRコードを作成して

    img = qrcode.make(c)

//イメージを保存

img.save("製品QRコード.png")

//QRコードを表示

    img.show()

//上記までが関数部です。以下がユーザーフォームの作成コードです。

//ユーザーフォームモジュールのTkinterを定義しています。

rt = tkinter.Tk()

//ユーザーフォームのサイズ。

rt.geometry("500x300")

//ユーザーフォームのタイトル。

rt.title("情報取得")

//ユーザーフォームのに配置するテキストボックスのラベルです。

lbl = tkinter.Label(text="製品コード")

//ラベルを配置する位置です。

lbl.place(x=30, y=70)

//ユーザーフォームのに配置するテキストボックスのラベルです。

lbl2 = tkinter.Label(text="製造日")

//ラベルを配置する位置です。

lbl2.place(x=30, y=150)

//ユーザーフォームのに配置するテキストボックスです。幅を40としています。

txt = tkinter.Entry(width=40)

//ユーザーフォームのに配置するテキストボックスの位置です。

txt.place(x=130, y=70)

//ユーザーフォームのに配置するテキストボックスです。幅を40としています。

txt2 = tkinter.Entry(width=40)

//テキストボックスの初期値を設定しています。

txt2.insert(0,"テンプレートにした情報")

//ユーザーフォームのに配置するテキストボックスの位置です。

txt2.place(x=130, y=150)

//ユーザーフォームのに配置する読み込みボタンです。

//上記の関数名で機能をセットしています。

btn = tkinter.Button(rt, text="取得", command= bclick)

//ボタンの配置場所です。

btn.place(x=335, y=200)

//ユーザーフォームの表示です。

rt.mainloop()      

〇補足

即興で作ったので、見た目はあまりきれいじゃないです。

今回は行っていませんが、ユーザーフォームの色や線などの設定もできます。

QRコードも大きさを指定できたり、色を付けたりといろいろとできます。

〇まとめ

PythonQRコードを作りたい場合は、qrcodeのライブラリを使います。

qrcodeのライブラリはpip でインストールすることができます。

ユーザーフォームを使いたかったら tkinterのモジュールを使います。TkinterPythonをインストールすると最初から使えます。

これを、openpyxlを使ってExcelに貼り付けれたらもっと便利になるので、今度挑戦してみたいです。

 

koneka1208

koneka1208

自己紹介

自分の写真
エクセル好きの窓際会社員です。 エクセルの操作法や日々の会社で得た知見などを発信していきます。 よろしくお願いします。

ブログ アーカイブ

連絡フォーム

名前

メール *

メッセージ *

QooQ