Tkinter.text имеет механизм автоматического переноса, есть ли способ сделать перенос строки и сделать отступ для определPython

Программы на Python
Ответить
Anonymous
 Tkinter.text имеет механизм автоматического переноса, есть ли способ сделать перенос строки и сделать отступ для определ

Сообщение 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


Подробнее здесь: https://stackoverflow.com/questions/793 ... he-line-wr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»