我有一個帶有四個物件和一個按鈕的 tkinter 彈出視窗。
我需要以這種方式放置它們(使用 excel 顯示):

我正在放置這樣的標簽:
lb1.grid(row=1,column=1)
lb3.grid(row=2,column=1)
lb3.grid(row=3,column=1,sticky='w')
lb4.grid(row=3,column=1,sticky='e')
但是,當我使用以下按鈕放置按鈕時,它不會跨越所有行。相反,它保留為第 4 行專案。
bt.grid(rowspan=3,column=2) #have even tried adding sticky = 'ns' to this but doesn't stretch
基本上,我希望按鈕是小部件右邊框上的一條細垂直線。我還想洗掉按鈕的斜角,文本將為空白,顏色將與標簽背景相同,以使其難以看到按鈕。但是它應該可以在所有標簽上的小部件的整個東側邊框上單擊。
我們可以這樣做嗎?
uj5u.com熱心網友回復:
您的問題是您將 lb4 標簽放置在 lb3 標簽上。您還應該為 lb1 和 lb2 指定 columnspan = 2,因為它們跨越 2 列(第 1 列,lb3 所在的位置,第 2 列,lb4 所在的位置)。bt 將在第 3 列中,從第 1 行開始,行跨度 = 3,因此到達第 3 行;代碼:
from tkinter import *
root = Tk()
root.geometry("400x400")
lb1 = Label(root, text="Obj1")
lb2 = Label(root, text="Obj2")
lb3 = Label(root, text="Obj3")
lb4 = Label(root, text="Obj4")
lb1.grid(row=1,column=1, columnspan=2)
lb2.grid(row=2,column=1, columnspan=2)
lb3.grid(row=3,column=1,sticky='w')
lb4.grid(row=3,column=2,sticky='e')
bt = Button(root, text="Button")
bt.grid(rowspan=3, row=1, column=3, sticky="ns")
root.mainloop()
還要注意,行和列實際上從 0 開始(就像 Python 中的大多數事情一樣),但是因為我不確定您是否已經在 row = 0 / column = 0 中有一些小部件,所以我使用了您的列號/行號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/383483.html
