Текст панели ввода Python Tkinter

Как я могу поместить виджет ввода, чтобы он не начинал писать прямо на границе виджета? Визуально, имея небольшое пространство от границы виджета ввода.

Мой прогресс:

entry_widget.bind('<FocusIn>', lambda f: entry_widget.insert(0, ' '))

Это добавляет пустое пространство, когда пользователь нажимает на виджет, но есть несколько проблем с этим Решение:

При щелчке и нажатии на него он добавит еще одно место поверх пустого пространства или любого текста, который пользователь заполнил. Я решил очистить виджет ввода на FocusOut, но это будет также очистить весь текст, который пользователь мог бы написать. Пользователь может удалить вставленное пространство при получении содержимого, в начале есть дополнительное пространство. Хотя это небольшая проблема, которая может быть решена путем удаления первого символа содержимого.

И может быть больше проблем, которые я не учитывал.

Я думаю, что способ, которым мой код загорается плохо, поэтому я спрашиваю, есть ли у кого-нибудь представление о том, как «правильно» вставить виджет ввода?

0
задан 13 August 2018 в 15:50

1 ответ

Вот простой пример того, как вы можете заставить пространство начать, а затем с помощью связывания сохранить пространство во время ввода пользователем.

import tkinter as tk

root = tk.Tk()

def check_for_space(event):
    if entry.get() == "":
        entry.insert(0, " ")
    elif entry.get()[0] != " ":
        entry.insert(0, " ")
    else:
        pass

entry = tk.Entry(root)
entry.insert(0, " ")
entry.pack()
entry.bind("<Key>", check_for_space)

root.mainloop()
0
ответ дан 15 August 2018 в 16:59
  • 1
    Пользователь может перемещаться вперед, используя клавиши со стрелками. Кроме того, пользователь может удалить пробел. Вопрос номер 2 по-прежнему остается. – Programer Beginner 13 August 2018 в 17:10
  • 2
    @ProgramerBeginner Как только они набирают что-либо еще перед пространством, будет добавлено новое пространство. Я сказал, что понимаю, что вы говорите. Возможно, я мог бы попробовать что-то еще, но я думаю, что ваши решения - это ответ. – Mike - SMT 13 August 2018 в 19:14

Другие вопросы по тегам:

Похожие вопросы: