mirror of
https://github.com/TomSchimansky/CustomTkinter.git
synced 2023-08-10 21:13:13 +03:00
Merge pull request #13 from o0morgan0o/dev-pack-expand-support
[functionality] add pack support for position of customCTkButton
This commit is contained in:
commit
d680a54a57
@ -30,6 +30,8 @@ class CTkButton(tkinter.Frame):
|
|||||||
|
|
||||||
AppearanceModeTracker.add(self.set_appearance_mode)
|
AppearanceModeTracker.add(self.set_appearance_mode)
|
||||||
|
|
||||||
|
self.gridConfigure()
|
||||||
|
|
||||||
if bg_color is None:
|
if bg_color is None:
|
||||||
if isinstance(self.master, CTkFrame):
|
if isinstance(self.master, CTkFrame):
|
||||||
self.bg_color = self.master.fg_color
|
self.bg_color = self.master.fg_color
|
||||||
@ -49,10 +51,10 @@ class CTkButton(tkinter.Frame):
|
|||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
|
|
||||||
if corner_radius*2 > self.height:
|
if corner_radius * 2 > self.height:
|
||||||
self.corner_radius = self.height/2
|
self.corner_radius = self.height / 2
|
||||||
elif corner_radius*2 > self.width:
|
elif corner_radius * 2 > self.width:
|
||||||
self.corner_radius = self.width/2
|
self.corner_radius = self.width / 2
|
||||||
else:
|
else:
|
||||||
self.corner_radius = corner_radius
|
self.corner_radius = corner_radius
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ class CTkButton(tkinter.Frame):
|
|||||||
highlightthicknes=0,
|
highlightthicknes=0,
|
||||||
width=self.width,
|
width=self.width,
|
||||||
height=self.height)
|
height=self.height)
|
||||||
self.canvas.place(x=0, y=0)
|
self.canvas.grid(row=0, column=0)
|
||||||
|
|
||||||
if self.hover is True:
|
if self.hover is True:
|
||||||
self.canvas.bind("<Enter>", self.on_enter)
|
self.canvas.bind("<Enter>", self.on_enter)
|
||||||
@ -103,6 +105,20 @@ class CTkButton(tkinter.Frame):
|
|||||||
self.text_label = None
|
self.text_label = None
|
||||||
self.image_label = None
|
self.image_label = None
|
||||||
|
|
||||||
|
# Each time an item is resized due to pack position mode, the binding Configure is called on the widget
|
||||||
|
self.bind('<Configure>', self.updateDimensions)
|
||||||
|
self.draw()
|
||||||
|
|
||||||
|
def gridConfigure(self):
|
||||||
|
# Configuration of a basic grid in which all elements of CTkButtons are centered on one row and one column
|
||||||
|
self.grid_rowconfigure(0, weight=1)
|
||||||
|
self.grid_columnconfigure(0, weight=1)
|
||||||
|
|
||||||
|
def updateDimensions(self, event):
|
||||||
|
# We update the dimensions of the internal elements of CTkButton Widget
|
||||||
|
self.canvas.config(width=event.width, height=event.height)
|
||||||
|
self.width = event.width
|
||||||
|
self.height = event.height
|
||||||
self.draw()
|
self.draw()
|
||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
@ -200,7 +216,7 @@ class CTkButton(tkinter.Frame):
|
|||||||
self.text_label = tkinter.Label(master=self,
|
self.text_label = tkinter.Label(master=self,
|
||||||
text=self.text,
|
text=self.text,
|
||||||
font=self.text_font)
|
font=self.text_font)
|
||||||
self.text_label.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
|
self.text_label.grid(row=0, column=0)
|
||||||
|
|
||||||
self.text_label.bind("<Enter>", self.on_enter)
|
self.text_label.bind("<Enter>", self.on_enter)
|
||||||
self.text_label.bind("<Leave>", self.on_leave)
|
self.text_label.bind("<Leave>", self.on_leave)
|
||||||
@ -230,7 +246,7 @@ class CTkButton(tkinter.Frame):
|
|||||||
else:
|
else:
|
||||||
self.image_label = tkinter.Label(master=self,
|
self.image_label = tkinter.Label(master=self,
|
||||||
image=self.image)
|
image=self.image)
|
||||||
self.image_label.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
|
self.image_label.grid(row=0, column=0)
|
||||||
|
|
||||||
self.image_label.bind("<Enter>", self.on_enter)
|
self.image_label.bind("<Enter>", self.on_enter)
|
||||||
self.image_label.bind("<Leave>", self.on_leave)
|
self.image_label.bind("<Leave>", self.on_leave)
|
||||||
@ -362,4 +378,3 @@ class CTkButton(tkinter.Frame):
|
|||||||
self.appearance_mode = 0
|
self.appearance_mode = 0
|
||||||
|
|
||||||
self.draw()
|
self.draw()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user