Как я могу заблокировать виджет Text
, чтобы пользователь мог выбирать и копировать текст из него, но я все равно смогу вставить текст в Text
из функции или аналогичного?Как отключить ввод в текстовый виджет, но разрешить программный ввод?
ответ
Вы пробовали просто отключить текстовый виджет?
text_widget.configure(state="disabled")
На некоторых платформах, вы также должны добавить привязку на <1>
дать фокус на виджет, в противном случае подсветка для копирования не появляется:
text_widget.bind("<1>", lambda event: text_widget.focus_set())
Если отключить виджет , чтобы вставить программно вам просто нужно
- Изменение состояния виджета
NORMAL
- I nsert текста, а затем
- Изменения состояния обратно в
DISABLED
До тех пор, пока вы не звоните update
в середине, что тогда нет никакого способа для пользователя, чтобы иметь возможность ввести что-либо в интерактивном режиме.
Жаль, что я опаздываю на вечеринку, но я нашел эту страницу в поиске того же решения, что и вы.
Я обнаружил, что если вы «отключили» текстовый виджет по умолчанию, а затем «нормализуете» его в начале функции, которая дает ему ввод и «отключает» его снова в конце функции.
def __init__():
self.output_box = Text(fourth_frame, width=160, height=25, background="black", foreground="white")
self.output_box.configure(state="disabled")
def somefunction():
self.output_box.configure(state="normal")
(some function goes here)
self.output_box.configure(state="disable")
я наткнулся на государственном = «нормальный»/State = «ОТКЛ» решения, а также, однако тогда вы не можете выбрать и скопировать текст из него. Наконец, я нашел решение ниже: Is there a way to make the Tkinter text widget read only?, и это решение позволяет вам выбирать и копировать текст, а также следовать гиперссылкам.
import Tkinter
root = Tkinter.Tk()
readonly = Tkinter.Text(root)
readonly.bind("<Key>", lambda e: "break")
- 1. jQuery Отключить Выбрать (разрешить ввод)
- 2. C программный ввод петли
- 3. многострочный текстовый ввод
- 4. Как разрешить ввод букв?
- 5. Разрешить ввод в UITableViewCell
- 6. Сохраните ввод пользователя в текстовый виджет Tkinter при использовании классов
- 7. Ввод данных в виджет Durandal
- 8. Как отключить заглавный ввод?
- 9. Как предотвратить ввод ключа ввода из формы, но все же разрешить ввод в работу?
- 10. HTML-терминал, как текстовый ввод
- 11. Текстовый ввод игры
- 12. JQuery ControlGroup текстовый ввод
- 13. Как отключить нажатие на ввод?
- 14. Отключить ввод в html
- 15. Модный текстовый ввод BlackBerry
- 16. Невозможно разрешить ввод?
- 17. Отключить ввод текста в Edge?
- 18. программный ввод текстового блока с разрывами строк
- 19. Запрашивать ввод в python, разрешить прямую запись или текстовый файл
- 20. Включить выбор ввода, но отключить ввод текста
- 21. Пользовательский ввод в текстовый файл
- 22. Добавить текстовый ввод в гиперссылку
- 23. Ввод текста в виджет для холста Tkinter
- 24. Ввод полей в текстовый вывод
- 25. Программный ввод подсказок в класс ListBox
- 26. Угловой: отключить ввод текста
- 27. Программный ввод формата даты в ячейке excel
- 28. Отключить ввод при выборе
- 29. Ввод файла программный щелчок в Framework7
- 30. Как переопределить/отключить ввод ncurses?
Да, но, согласно документам, это не позволяет вводить что-либо, даже из функций и т. Д. –
@PsychicOak: конечно. Но для вставки программно все, что вам нужно сделать, это установить состояние «нормальное», вставить текст, а затем сбросить состояние до «отключено». Я обновил свой ответ, чтобы включить эту информацию. –
* вздох * я чувствую себя глупо сейчас>.> Ха-ха спасибо! вы получите свои очки, когда им разрешат принимать xD –