私はTkinter
を使って新しく、本当に簡単なGUIを作っています。 JavaFXのバックグラウンドから来て、私は座標上にボタンの位置を置くことができないので、ちょっと混乱しています。レイアウト - Tkinter - ボタンをグループ化する
これは私の実際のコードです:
class MoveRobot(Frame):
grid_counter = 0
def __init__(self):
Frame.__init__(self)
self.master.title("Control Robot")
self.master.geometry("400x400")
self.master.rowconfigure(0, weight=1)
self.master.columnconfigure(0, weight=1)
self.grid(sticky=W + E + N + S)
self.list_box = Listbox(self)
self.list_box.grid(rowspan=4, sticky=W + E + N + S)
self.button1 = Button(self, text="UP", command=self.button_up)
self.button1.grid(row=0, column=1, columnspan=2, sticky=W + E + N + S)
self.button2 = Button(self, text="DOWN", command=self.button_down)
self.button2.grid(row=1, column=1, columnspan=2, sticky=W + E + N + S)
self.button3 = Button(self, text="LEFT", command=self.button_left)
self.button3.grid(row=2, column=1, columnspan=2, sticky=W + E + N + S)
self.button4 = Button(self, text="RIGHT", command=self.button_right)
self.button4.grid(row=3, column=1, columnspan=2, sticky=W + E + N + S)
self.button_cancel = Button(self, text="Remove Last", command=self.button_remove_last)
self.button_cancel.grid(row=4, columnspan=2, sticky=W + E + N + S)
self.button_cancel = Button(self, text="Clear", command=self.button_clear)
self.button_cancel.grid(row=5, columnspan=2, sticky=W + E + N + S)
self.button_compile = Button(self, text="Compile", command=self.button_compile)
self.button_compile.grid(row=6, columnspan=2, sticky=W + E + N + S)
self.rowconfigure(1, weight=1)
self.columnconfigure(1, weight=1)
#controller code is removed because unnecessary
def main():
MoveRobot().mainloop()
if __name__ == "__main__":
main()
そして、以下の私のGUIが作成されたもの。
しかし、私は一緒に 'UP' ボタン、 'DOWN'、 'LEFT' と 'RIGHT' を堅持するために管理することができません。私はフォーラムやウェブサイトを見ようとしましたが、解決策を見つけることができませんでした。これは単なるレイアウト上の問題であるため、かなり単純です。
私が欲しいの出力はこのようなものでなければなりません。..
誰でも助けることができるのですか?私はTkinterの使い方がわからず、Web上で解決策を見つけることができないので、この質問が他の人にとっても有益であることを願っています。
ありがとうございます。
最初の文は意味をなさないものです。リストボックスに明示的な高さを指定すると、この場合は何も実行されません(本当に小さな数値に設定されていない限り)。また、weightは "tkinterに1単位拡張するように指示しません"。私はあなたが "ユニット"がこの文脈の中にあると思いますが、重量はちょうどtkinterにウィジェットの余分なスペースをどのように分配するかを伝えます。 –
あなたは正しいです@ブライアンオークリー、それは特定のユニットによって拡大していません、私は不明であった – EriktheRed
@ブライアンオクリーしかし、私は明示的な高さについて何を言っている。リストボックスがレイアウト内にあるよりも背が高いことを考えると(私のasciiを見てください)、tkinterはそれがどれくらい大きくなければならないかを除いて縮小します...これを解決する他の方法があるかもしれませんが、これは私が行ったいくつかのテストでは動作します – EriktheRed