# Main style configs
self.appWidth = 500
self.appHeigth = self.winfo_screenheight() - 75
screenPosX = self.winfo_screenwidth() - self.appWidth - 10
self.geometry(f'{self.appWidth}x{self.appHeigth} {screenPosX} 0')
self.tableContainner = Canvas(self)
self.tableContainner.place(relx=0,rely=0.1, relwidth=1, relheight=0.5)
Create Table
print(self.winfo_depth())
self.tableContainner.create_oval(0,0,self.appWidth,self.appHeigth/2.5, fill='blue')
我正在嘗試用我的應用程式的寬度制作一個橢圓形圓圈,并且它的 30% 的高度試圖讓它像在“地方”relx 依賴等中找到的屬性一樣回應,我已經對它們進行了全部測驗,但它是可以使用一些 winfo_* 來找出實時視窗大小并在更改時更改畫布大小?
或者只是填充在這種情況下已經回應的整個畫布......

uj5u.com熱心網友回復:
您應該創建一次橢圓,然后創建<Configure>與畫布事件的系結以呼叫調整橢圓大小的函式。只要畫布改變大小,就會觸發該<Configure>事件。
下面的例子創建了一個視窗一半高度的畫布,然后繪制一個全寬和 1/3 高度的橢圓,當畫布改變大小時,它會調整大小。
class Example(tk.Frame):
def __init__(self, parent):
super().__init__(parent)
self.tableContainer = tk.Canvas(self)
self.tableContainer.place(relx=0, rely=0.1, relwidth=1, relheight=0.5)
self.tableContainer.create_oval(0, 0, 1, 1, fill='blue', tags=("oval",))
self.tableContainer.bind("<Configure>", self.resize_oval)
def resize_oval(self, event):
width = event.width
height = event.height
self.tableContainer.coords("oval", 0, 0, width, height*.30)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/510578.html
標籤:tkinterttk
