Underline Text in Tkinter Label widget?
Solution 1
To underline all the text in a label widget you'll need to create a new font that has the underline attribute set to True. Here's an example:
try:
import Tkinter as tk
import tkFont
except ModuleNotFoundError: # Python 3
import tkinter as tk
import tkinter.font as tkFont
class App:
def __init__(self):
self.root = tk.Tk()
self.count = 0
l = tk.Label(text="Hello, world")
l.pack()
# clone the font, set the underline attribute,
# and assign it to our widget
f = tkFont.Font(l, l.cget("font"))
f.configure(underline = True)
l.configure(font=f)
self.root.mainloop()
if __name__ == "__main__":
app = App()
Solution 2
For those working on Python 3 and can't get the underline to work, here's example code to make it work.
from tkinter import font
# Create the text within a frame
pref = Label(checkFrame, text = "Select Preferences")
# Pack or use grid to place the frame
pref.grid(row = 0, sticky = W)
# font.Font instead of tkFont.Fon
f = font.Font(pref, pref.cget("font"))
f.configure(underline=True)
pref.configure(font=f)
Solution 3
oneliner
mylabel = Label(frame, text = "my label", font="Verdana 15 underline")
Solution 4
Try this for underline:
mylbl=Label(Win,text='my Label',font=('Arial',9,'bold','underline'))
mylbl.grid(column=0,row=1)
Solution 5
p = Label(root, text=" Test Label", bg='blue', fg='white', font = 'helvetica 8 underline')
put your own font (i choose helvetica 8)
Zac Brown
Computer geek, entrepreneur, soccer freak, Founder & CEO TeraTech Mobile, avid cyclist. That is all.
Updated on May 09, 2021Comments
-
Zac Brown almost 3 years
I am working on a project that requires me to underline some text in a Tkinter Label widget. I know that the underline method can be used, but I can only seem to get it to underline 1 character of the widget, based on the argument. i.e.
p = Label(root, text=" Test Label", bg='blue', fg='white', underline=0) change underline to 0, and it underlines the first character, 1 the second etc
I need to be able to underline all the text in the widget, I'm sure this is possible, but how?
I am using Python 2.6 on Windows 7.