I want to essentially fake a Labelframe whose text label includes more than just plain text, specifically text and a clickable button. The relevant code looks like this: root = Tk() mainframe = ttk.Frame(root, padding="3 3 12 12") mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) infoButtonFr = ttk.Frame(mainframe) infoButtonFr.grid(column=1, columnspan=3, row=3, sticky=W) infoButtonLb = ttk.Label(infoButtonFr, text=" Formatting:") infoButtonLb.grid(column=1, row=1, sticky=W) infoButtonBt = ttk.Button(infoButtonFr, text="", width=3, command=lambda:infoFunct("format")) infoButtonBt.grid(column=2, row=1, sticky=NW) canvasFrame = ttk.Labelframe(mainframe,text="Formatting: ") canvasFrame.grid(column=1, columnspan=2, row=4, sticky=W) mainCanvas = Canvas(canvasFrame, width=1000, bg="gray70") for child in mainframe.winfo_children(): if child != infoButtonFr and child != infoButtonLb and child != infoButtonBt: child.grid_configure(padx=5, pady=5) I would like to get the x and y coordinates of canvasFrame and then .place() the infoButtonFr there, placing it over the original text label. But I can't for the life of me get the x and y coordinates of canvasFrame! Every relevant variable I've tried returns 0. canvasFrame.winfo_rooty(): 0 canvasFrame.winfo_y(): 0 canvasFrame.winfo_geometry(): 1x1+0+0 canvasFrame.grid_info(): {'in': <tkinter.ttk.Frame object .!frame>, 'column': 1, 'row': 4, 'columnspan': 2, 'rowspan': 1, 'ipadx': 0, 'ipady': 0, 'padx': 5, 'pady': 5, 'sticky': 'w'} I really would like not to have to rework my entire UI to use .place() for everything instead of relying on grid but I'd also really like to have this button where I want it. Is this possible at all or am I going to have to give up on my button label dreams? Continue reading...