LINUX.ORG.RU

Стиль шрифтов в Tkinter

 


0

1

[Python 3] Сейчас у меня есть такой код:

root, res = Tk(), [None]
frame1=Frame(root)
frame1.pack(side=TOP)
txt1 = Text(frame1,font=font_size,wrap=WORD)
txt1.config(font = 'Arial 14 bold')
text='Hello'
txt1.insert(END,text)
txt1.pack()
root.mainloop()

Я хочу сделать так, чтобы в одном и том же текстовом окне можно было изменять шрифт фрагментов текста, а не его всего одновременно (например, сделать жирными несколько слов). Возможно ли это?

Deleted

Возможно, man 3tk text по поводу tag configure, на python tkinter думаю переведешь :)

Вообще insert имеет 3 аргумента - позиция,текст,тег; тег определяет стилевое оформление

MKuznetsov ★★★★★
()

В общем, решил задачу так:

#!/usr/bin/python3
from tkinter import *

def highlight_my_text(text_widget, keyword, tag):
	pos = '1.0'
	while True:
		idx = text_widget.search(keyword, pos, END)
		if not idx:
			break
		pos = '{}+{}c'.format(idx, len(keyword))
		text_widget.tag_add(tag, idx, pos)

root, res = Tk(), [None]
frame1=Frame(root)
frame1.pack(side=TOP)
txt1 = Text(frame1,font='Arial 14',wrap=WORD)
txt1.config(font = 'Arial 14')
text='Hello, my friends'
txt1.insert(END,text)
txt1.pack()
txt1.tag_config('friends',font='Arial 14 underline')
highlight_my_text(txt1,'friends','friends')
root.mainloop()

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.