Tkinter 私の実績 A3
前回に続いて Tkinter のウィジェットを追加して行きます。
画像を扱える Canvas を新たに使っています。
まだ、タイトル画像の表示を行うだけですが、入力した文字列を示すQRコードを生成・表示するアプリケーションです。
次回がAシリーズの最終回で、ソースファイル添付を予定します。
前回との相違点
1.frame1 にQRコードを表示しました。
180 x 180 pixcel の Canvas を作って、中央にQRコードのイメージ(.png)を表示します。
2.frame2 にウィジェットを追加
2-1.宣伝文のラベルを追加
2-2.uPyC のロゴを表示
これも Canvas です。
2-3.終了ボタンを追加
差分ソース
def create_widgets(self): に追加した分
frame1 に追加
# インナーフレーム12 の作成 (フレーム1内) ================================
frame12 = tk.Frame( # frame12インスタンスを作成
frame1, # frame1要素であるフレームを指定
background="snow", # 背景色を指定
borderwidth=1, # ボーダーの幅を指定
relief="groove", # ボーダーの浮き彫りを指定
width=180, # 幅をpixel単位で指定
height=180, # 高さをpixel単位で指定
)
# ---------------------------------------------------------------------
self.fig1 = tk.PhotoImage(file="Tk_mag.png")
self.fig2 = tk.PhotoImage(file="Tk_mag.png")
self.canvasq = tk.Canvas(frame12,bg="white", width=180, height=180)
self.canvasq.place(x=0, y=0)
self.canvasq.create_image(90, 90, image=self.fig1, anchor=tk.CENTER)
# ---------------------------------------------------------------------
frame12.place(x=10,y=10) # frame11インスタンスを配置 pixcel 単位で位置指定
# =====================================================================
frame2 に追加
# ここから frame2 の要素を記述
# ---------------------------------------------------------------------
lstrb = u'note uPyC で Tkinter の使い方に関するマガジンに\n紹介したアプリです。\n\n起動時のQRコードはマガジンのURLです。'
label2 = tk.Label(frame2, text=lstrb, font=("",8), fg="gray", bg="snow")
label2.place(x=90,y=10)
# ロゴ -----------------------------------------------------------------
self.upyc = tk.PhotoImage(file="uPyC.png")
canvasu = tk.Canvas(frame2,bg="snow", width=40, height=40, highlightthickness=0)
canvasu.place(x=350, y=50)
canvasu.create_image(0, 0, image=self.upyc, anchor=tk.NW)
# ---------------------------------------------------------------------
self.buttonq = tk.Button(frame2, text="終了", width=7, height=1, bg="LightPink1", command=self.master.destroy)
self.buttonq.place(x=10,y=50)
# ---------------------------------------------------------------------
# 以上 frame2 の要素
解説
簡単に捕捉します。
frame1 に追加した分
フレームについては前回、解説していますから割愛します。
self.canvasq.create_image で 180 x 180 pixcel の Canvas の中央座標と anchor=tk.CENTER で画像を中央に配置しています。
frame2 に追加した分
canvasu.create_image で 40 x 40 pixcel の Canvas の左肩座標と anchor=tk.NW で画像を左上に配置しています。
ラベルとボタンは前回解説済みなので割愛します。
次回はこれまでに作ったGUIを使って、QRコードを生成・表示する機能を作ります。
何等かお役に立てれば幸いです。
出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。