見出し画像

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コードを生成・表示する機能を作ります。

何等かお役に立てれば幸いです。



出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。