введите здесь описание изображения
Я хочу, чтобы неокрашенная часть обернутой части была с отступом и выровнена, поскольку размер каждого символа не фиксирован, я не могу сделать это путем подсчета количества символов, мне нужно переопределить какой метод в tk.
Ниже приведен текущий соответствующий код, эффект показан на рисунке.
class re_Text():
def __init__(self, queue):
self.queue = queue
def write(self, content):
self.queue.append(content)
def flush(self):
pass
class GUI():
def __init__(self, root):
self.msg_queue = deque()
self.initGUI(root)
def show_msg(self):
save_queue = self.msg_queue
while self.msg_queue:
content = self.msg_queue.popleft()
self.text.config(state=NORMAL)
self.text.insert(tk.END, content)
c_t = re.findall(r'^\[\d{2}:\d{2}:\d{2}]', content)
if c_t: self.apply_tag('c', c_t[0])
self.text.config(state=DISABLED)
self.msg_queue = save_queue
self.text.see(END)
self.root.after(50, self.show_msg)
def initGUI(self, root):
self.root = root
self.scrollBar = tk.Scrollbar(self.root)
self.text = tk.Text(self.root, yscrollcommand=self.scrollBar.set, state=DISABLED, relief='flat', font=my_font_llt_8, fg='black', bg='#fcfcfc')
self.text.place(x=390, y=10, width=175, height=365)
self.scrollBar.config(command=self.text.yview)
self.text.bind('', lambda e: 'break')
self.text.bind('', lambda e: 'break')
self.text.bind('', lambda e: 'break')
self.text.tag_configure('c', foreground='#ff7f7f')
self.root.after(50, self.show_msg)
def delLastText(self):
self.msg_queue.pop()
self.msg_queue.pop()
def apply_tag(self, tag_name, search_string, replacement_string=None):
start_pos = '1.0'
while True:
start_pos = self.text.search(search_string, start_pos, stopindex=tk.END)
if not start_pos:
break
end_pos = self.text.index(start_pos + '+%dc' % len(search_string))
if replacement_string:
self.text.delete(start_pos, end_pos)
self.text.insert(start_pos, replacement_string)
self.text.tag_add(tag_name, start_pos, end_pos)
start_pos = end_pos
Подробнее здесь: https://stackoverflow.com/questions/793 ... he-line-wr
Tkinter.text имеет механизм автоматического переноса, есть ли способ сделать перенос строки и сделать отступ для определ ⇐ Python
Программы на Python
1735040976
Anonymous
введите здесь описание изображения
Я хочу, чтобы неокрашенная часть обернутой части была с отступом и выровнена, поскольку размер каждого символа не фиксирован, я не могу сделать это путем подсчета количества символов, мне нужно переопределить какой метод в tk.
Ниже приведен текущий соответствующий код, эффект показан на рисунке.
class re_Text():
def __init__(self, queue):
self.queue = queue
def write(self, content):
self.queue.append(content)
def flush(self):
pass
class GUI():
def __init__(self, root):
self.msg_queue = deque()
self.initGUI(root)
def show_msg(self):
save_queue = self.msg_queue
while self.msg_queue:
content = self.msg_queue.popleft()
self.text.config(state=NORMAL)
self.text.insert(tk.END, content)
c_t = re.findall(r'^\[\d{2}:\d{2}:\d{2}]', content)
if c_t: self.apply_tag('c', c_t[0])
self.text.config(state=DISABLED)
self.msg_queue = save_queue
self.text.see(END)
self.root.after(50, self.show_msg)
def initGUI(self, root):
self.root = root
self.scrollBar = tk.Scrollbar(self.root)
self.text = tk.Text(self.root, yscrollcommand=self.scrollBar.set, state=DISABLED, relief='flat', font=my_font_llt_8, fg='black', bg='#fcfcfc')
self.text.place(x=390, y=10, width=175, height=365)
self.scrollBar.config(command=self.text.yview)
self.text.bind('', lambda e: 'break')
self.text.bind('', lambda e: 'break')
self.text.bind('', lambda e: 'break')
self.text.tag_configure('c', foreground='#ff7f7f')
self.root.after(50, self.show_msg)
def delLastText(self):
self.msg_queue.pop()
self.msg_queue.pop()
def apply_tag(self, tag_name, search_string, replacement_string=None):
start_pos = '1.0'
while True:
start_pos = self.text.search(search_string, start_pos, stopindex=tk.END)
if not start_pos:
break
end_pos = self.text.index(start_pos + '+%dc' % len(search_string))
if replacement_string:
self.text.delete(start_pos, end_pos)
self.text.insert(start_pos, replacement_string)
self.text.tag_add(tag_name, start_pos, end_pos)
start_pos = end_pos
Подробнее здесь: [url]https://stackoverflow.com/questions/79305498/tkinter-text-has-an-auto-wrap-mechanism-is-there-any-way-i-can-make-the-line-wr[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия