4

Pythonでttk/tkinterで画像を表示しようとしています。画像には白い境界線があり、この画像をより大きな白い背景に表示したいので、周りにたくさんの空白があります。

このために、ラベルに「padx」と「pady」をそれぞれ 100px で使用します。残念ながら、パディング領域は灰色です。

今、ラベルの前景色と背景色を無駄に変更しようとしました。パディング領域は灰色のままです。次に、ラベルを Frame ウィジェットに入れ、Frame の前景色/背景色を変更してみました。残念ながら、Frame ウィジェットは width= および height= 引数をリッスンしません。また、前景色を変更すると、SUNKEN ボーダーの色が変わります - 本当にクールですが、私にはまったく役に立ちません :/ .

誰でもこれで私を助けることができますか?現在動作していないコードは次のようになります。

style = Style()

style.configure('Dlr.TFrame', background="blue", relief=SUNKEN)
frm = Frame(self, style="Dlr.TFrame") # does not work: ,height=500,width=500)
frm.grid(row=0, column=0, rowspan=8, columnspan=2, sticky=N+S+E+W)

style.configure("Dlr.TLabel", background="white")
style.configure("Dlr.TLabel.padding", background="white") # just guessed ...
self.IMG = Label(frm, style="Dlr.TLabel")
self.IMG.grid(row=0, column=0, padx=100, pady=100)
4

1 に答える 1

3

画像をフレーム内に配置してからフレームの色を設定する手法は正しい手法です。

幅と高さは機能しません。これはgridpack含まれるウィジェットがデフォルトで「縮小して収まる」ようにするためです。これは、ジオメトリの伝播と呼ばれます。含まれているウィジェットでメソッドgrid_propagateまたはpack_propagateを使用して、この機能をオンまたはオフにすることができます。

たとえば、 を呼び出しfrm.grid_propagate(False)てウィジェットと高さを設定するとfrm、幅と高さが適用されます。

于 2012-01-18T18:23:54.150 に答える