在Tkinter标签小部件下划线文本?

我正在研究一个项目,要求我在Tkinter Label小部件中强调一些文本。 我知道可以使用下划线方法,但我似乎只能根据参数来强调小部件的1个字符。 即

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 

我需要能够强调小部件中的所有文本,我相信这是可能的,但是如何?

我在Windows 7上使用Python 2.6。

Solutions Collecting From Web of "在Tkinter标签小部件下划线文本?"

要强调标签小部件中的所有文本,您需要创建一个将下划线属性设置为True的新字体。 这是一个例子:

 import Tkinter as tk import 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() 

对于那些在Python 3上工作的人,无法得到下划线的工作,下面是示例代码,使其工作。

 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)