Я создал калькулятор, используя python tkinter, но я хочу предотвратить ввод каких-либо букв в поле ввода, в котором отображаются вычисляемые числа, я хочу, чтобы ввод был только нажатием кнопки, чтобы гарантировать, что ввод будет только числами и математическими операторами, это это код, который генерирует коробку
textbox = Entry(MBC,font=("Helvetica",20,"bold"),text=text_Input,bd=30,
insertwidth=4,bg = "powder blue",justify = "right").grid(columnspan=4)
если это поле ввода текста, как я могу заставить его отображать только математические операции, не принимая ввод с клавиатуры?
Если вы хотите, чтобы ввод был только нажатием кнопки, зачем нужен виджет ввода текста? Ваш вопрос не имеет смысла.
Это не виджет ввода текста, это поле, в котором отображаются введенные числа, и когда я щелкаю там мышью и набираю буквы, они печатаются, но не влияют на операции, я хочу предотвратить их ввод
@MazenM.Khattab Покажите, пожалуйста, код, который генерирует объект tkinter, о котором вы говорите.
Если вы можете печатать там, это точно звучит как виджет для ввода текста. Почему бы не указать минимальный воспроизводимый пример, чтобы нам не приходилось гадать о коде, который мы не видим.
Это определенно виджет ввода текста. Как видно из ответа ниже, естественным решением является использование Label
, а не Entry
Если вы не хотите, чтобы пользователь печатал, почему бы вам не использовать Label
вместо Entry
?
Я думаю, вы можете просто добавить параметр состояния в свою запись:
myEntry = Entry(myWindow, state=DISABLED)
Вот некоторая документация по виджету Entry: https://www.tutorialspoint.com/python/tk_entry.htm
Как сказал кто-то в комментариях, нет необходимости использовать виджет Entry, если вы не хотите, чтобы пользователь взаимодействовал напрямую. Простая метка сделает эту работу, так как вам просто нужно показать расчеты.
Хороший ответ (особенно часть о ярлыке). В документации, на которую вы указываете, прямо говорится: «Если вы хотите отобразить одну или несколько строк текста, которые не могут быть изменены пользователем, вам следует использовать виджет Label».
Привет и добро пожаловать в ТАК. Возможно, вам следует попробовать прочитать рекомендации, чтобы задать вопросы: stackoverflow.com/help/как спросить. Помогите нам помочь вам :)