15

Tkinterラベルウィジェットのテキストに下線を引く必要があるプロジェクトに取り組んでいます。アンダースコアメソッドを使用できることは知っていますが、引数に基づいて、ウィジェットの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

ウィジェット内のすべてのテキストに下線を付けることができる必要があります。これは可能だと確信していますが、どうすればよいでしょうか。

私はWindows7でPython2.6を使用しています。

4

7 に答える 7

23

ラベルウィジェット内のすべてのテキストに下線を付けるには、下線属性が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()
于 2010-09-07T12:01:51.927 に答える
3

下線のためにこれを試してください:

mylbl=Label(Win,text='my Label',font=('Arial',9,'bold','underline'))
mylbl.grid(column=0,row=1)
于 2020-07-09T13:57:38.437 に答える