Вы пробовали разные значения для аргумента relief
? SOLID
приводит к очень ... нечеткому результату на моей машине:
Получается со следующими настройками:
# create LabelFrame
labelframe = LabelFrame(root, text="State data", borderwidth=5, relief=SOLID)
labelframe.pack(padx=5, pady=5)
Обновление:
Для Windows 10 вышеуказанных настроек недостаточно. Проверено и на моей машине. Python 3,7 и Python 3,8. Кажется, это проблема с темой по умолчанию, используемой на Windows машинах.
Так что вам нужно поиграть со стилем Tkinter:
import tkinter as tk
from tkinter import *
from tkinter import ttk
from tkinter.ttk import *
root = tk.Tk()
style = ttk.Style()
print(f"available themes: {', '.join(style.theme_names())}")
style.theme_use('alt')
labelframe = LabelFrame(root, text="State data", borderwidth=4, relief=SOLID)
labelframe.pack(padx=5, pady=5)
Label(labelframe, text="State").pack()
Label(labelframe, text="Abbrev").pack()
Label(labelframe, text="Capital").pack()
Label(labelframe, text="Founded").pack()
if __name__ == "__main__":
print("starting")
tk.mainloop()
Этот пример печатает доступные темы в консоль. Попробуйте, какой из них лучше всего соответствует вашим потребностям.
Результат для темы 'alt' далек от идеального, но указывает в правильном направлении:
Для получения более подробной информации о стилях, я предлагаю обратиться к разделу о theme_settings в руководстве.