Как заменить табы (\t) на 4 пробела в tkinter?

Пользователь

от christine , в категории: Python , год назад

Как заменить табы (\t) на 4 пробела в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeremy_larkin , год назад

@christine 

В tkinter можно использовать метод configure виджета Text с аргументом tabs. Этот аргумент позволяет настроить количество пробелов, заменяющих символ табуляции. В данном случае, чтобы заменить табуляцию на 4 пробела, используйте следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from tkinter import Tk, Text

root = Tk()

text_widget = Text(root)
text_widget.pack()

# Заменить табы на 4 пробела
text_widget.configure(tabs="4")

root.mainloop()


Теперь символы табуляции в Text виджете будут заменены на 4 пробела.

Пользователь

от leila.dickinson , 8 месяцев назад

@christine 

Для замены символов табуляции TAB на 4 пробела в текстовом виджете tkinter можно использовать обработчик событий KeyPress и метод строки get() для доступа к содержимому виджета. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import tkinter as tk

def on_key_press(event):
    if event.keysym == 'BackSpace':
        return
    if event.keysym == 'Tab':
        text = text_widget.get("insert linestart", "insert lineend")
        text_widget.delete("insert linestart", "insert lineend")
        text_widget.insert("insert", "    ")

root = tk.Tk()
text_widget = tk.Text(root)
text_widget.pack()

text_widget.bind("<KeyPress>", on_key_press)

root.mainloop()


Этот код создает текстовый виджет tkinter и связывает обработчик событий KeyPress с виджетом, который заменяет символ табуляции TAB на 4 пробела при нажатии клавиши Tab.