230918 知識ゼロで始めるアプリ開発 #7

生命科学系の大学院生、いつしか休みに休んではいけないことを体で覚えてしまったので、意図的に休もうとすると罪悪感が生まれます。

 

ということで、昨日の続き、tkinterのボタンサイズをピクセルで指定します。

www.delftstack.com

 

このサイトでのコード例が

pixelVirtual = tk.PhotoImage(width=1, height=1)
    
buttonExample1 = tk.Button(app,
                           text="Increase",
                           image=pixelVirtual,
                           width=100,
                           height=100,
                           compound="c")

ということなので、自分のコードでは

        self.pixelVirtual = tk.PhotoImage(width=20, height=20)

        self.wakaru_button = tk.Button(root, text="わかる", command=self.show_random_word, image=pixelVirtual)
        self.wakaru_button.place(x=100,y=150)

という具合でいかがでしょう。
早速走らせてみます。

ダメかー。ちゃんとself.pixelVirtual = tk.PhotoImage(width=20, height=20)で定義したつもりだったんだけどな。

...

...

...

とまぁこの手の方法で色々と試してみたのですが、埒が明かなかったので他の手段を考えてみます。office54.net

padx、padyを利用すると、ウィジェット外側のパディング(間隔)を指定できます。

x方向の外部間隔はpadx、y方向の外部間隔はpadyで指定します。

以下に使用例を記します。

とのこと。これなら中心位置を計算しなくても直接ボタンの位置を指定することができる? 

いやでもこれだと.placeの方が使い勝手が良さそうだ。
やっぱり.placeで指定するしか無いか…

        self.wakaru_button = tk.Button(root, text="わかる", command=self.show_random_word)
        self.wakaru_button.place(x=80,y=150)

        self.wakaranai_button = tk.Button(root, text="わからない", command=self.show_random_word)
        self.wakaranai_button.place(x=230,y=150)

 

結局、トライアンドエラーを繰り返して、まぁこんな感じかって位置にボタンを手作業で持ってきました。あんまりここに時間を食ってても仕方ないのでね。

あとはtkinterでボタンサイズ指定すると四角くてダサいので、Apple純正(?)の丸っこいボタンがいいですね。

次回は「わかる」単語を表示しないようにして、「わからない」単語を表示し続けるような仕様にしていきます。
これ結構難しそうだし、Pythonの基礎を復習しなきゃだな。