I am using the Frame widget in tkinter and have used highlightthickness and highlightcolor attributes. I have then added my label into the frame, however when run, the label appears on the window however the frame is not? The frame must be there or the label wouldn’t appear so im not sure what the issue could be?
import time import threading import tkinter as tk from tkinter import ttk, PhotoImage def main(): main_win = tk.Tk() main_win.title("Functional Pomodoro Timer") main_win.resizable(True,True) main_win.minsize(400, 200) main_win.geometry("800x400") frame1 = tk.Frame(main_win, highlightthickness=20, highlightcolor="black", relief=tk.RIDGE) frame1.place(x=0, y=0, relwidth=0.5, relheight=0.5) time_label = tk.Label(frame1, text="00:00", font=("Arial", 24)) time_label.place(relwidth=0.5, relheight=0.5) main_win.mainloop() if __name__ == "__main__": main()
Tried using frame with label in it, the label has appeared on the window, however when i use border attributes on the frame, it doesn’t work. I have also used .place() however none of the arguments seem to be noticed.
The highlight ring only shows up when the frame has the keyboard focus, which it rarely does. Unless the frame has focus, the ring will not show even when you set the
You can see the highlight ring by adding
frame1.focus_set() to your code. However, the purpose of the highlight ring isn’t to be a border. It is an indicator of focus, so that’s not a proper solution.
If you want a border, set the
frame1 = tk.Frame(main_win, borderwidth=2, relief=tk.RIDGE)