windows 在Tkinter标签小部件中给文本加下划线?

jv2fixgn  于 2023-05-01  发布在  Windows
关注(0)|答案(8)|浏览(237)

我正在做一个项目,需要我在Tkinter Label小部件中的一些文本下划线。我知道可以使用underline方法,但根据参数,我似乎只能让它为小部件的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

我需要能够强调在小部件中的所有文本,我相信这是可能的,但如何?
我使用Python 2。6在Windows 7上。

pvabu6sv

pvabu6sv1#

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

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()
ymzxtsji

ymzxtsji2#

对于那些在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)
shyt4zoc

shyt4zoc3#

一个人

mylabel = Label(frame, text = "my label", font="Verdana 15 underline")
bbuxkriu

bbuxkriu4#

试试下面这个:

mylbl=Label(Win,text='my Label',font=('Arial',9,'bold','underline'))
mylbl.grid(column=0,row=1)
6jjcrrmo

6jjcrrmo5#

mylabel = Label(frame, text = "my label")
mylabel.configure(font="Verdana 15 underline")
r1zhe5dt

r1zhe5dt6#

p = Label(root, text=" Test Label", bg='blue', fg='white', font = 'helvetica 8 underline')

把你自己的字体(我选择Helvetica 8)

quhf5bfb

quhf5bfb7#

要给所有字符加下划线,你应该导入tkinter。字体和使您自己的字体风格与此.举例来说-

from tkinter import *
from tkinter.font import Font
rt=Tk()
myfont=Font(family="Times",size=20,weight="bold", underline=1)
Label(rt,text="it is my GUI".title(),font=myfont,fg="green").pack()
rt.mainloop()
zy1mlcev

zy1mlcev8#

应该是这样的格式:
dev_label=Label(Right_frame, text="purxxx@gmail.com", font=("Times",15,"bold italic underline"), fg="black",bg="white")
dev_label.place(x=80,y=120)

相关问题