Следующий код Python создает поле списка и текстовый виджет. Когда я выбираю опцию, курсор должен отображаться в текстовом виджете, но это не так. Однако если я нажму Tab, активируется текстовый виджет, и я увижу курсор.
import tkinter as tk
list_cursor_pos = ['2.5', '5.10', '8.15']
def on_listbox_select(event):
i = listbox.curselection()[0]
cursor_pos = list_cursor_pos
text_box.focus_set()
text_box.mark_set("insert", cursor_pos)
text_box.see(cursor_pos)
text_box.event_generate('')
root = tk.Tk()
# Listbox
listbox = tk.Listbox(root)
listbox.pack(side = tk.LEFT, padx=10, pady=10)
for e in list_cursor_pos:
listbox.insert('end', f'Go to {e} in the text')
listbox.bind("", on_listbox_select)
# Text box
text_box = tk.Text(root, height=15, width=50)
text_box.pack(side = tk.RIGHT, padx=10, pady=10)
# Create content for text box
content = ""
for i in range(9):
content += f"{i+1}:234567890123456789\n"
text_box.insert("1.0", content)
root.mainloop()
Когда я делаю то же самое, используя кнопку вместо списка, это работает.
import tkinter as tk
def set_cursor_pos():
cursor_pos = "2.5"
text_box.focus_set()
text_box.mark_set("insert", cursor_pos)
root = tk.Tk()
myButton = tk.Button(root, text = "Set cursor position at 2.5", command=set_cursor_pos)
myButton.pack(side = tk.LEFT, padx=10, pady=10)
myButton.focus_set()
# Text box
text_box = tk.Text(root, height=15, width=50)
text_box.pack(side = tk.RIGHT, padx=10, pady=10)
content = ""
for i in range(9):
content += f"{i+1}:234567890123456789\n"
text_box.insert("1.0", content)
root.mainloop()
Подробнее здесь: https://stackoverflow.com/questions/796 ... box-option
Отображение курсора в виджете «Текст» после выбора опции «Список» ⇐ Python
Программы на Python
-
Anonymous
1770416229
Anonymous
Следующий код Python создает поле списка и текстовый виджет. Когда я выбираю опцию, курсор должен отображаться в текстовом виджете, но это не так. Однако если я нажму Tab, активируется текстовый виджет, и я увижу курсор.
import tkinter as tk
list_cursor_pos = ['2.5', '5.10', '8.15']
def on_listbox_select(event):
i = listbox.curselection()[0]
cursor_pos = list_cursor_pos[i]
text_box.focus_set()
text_box.mark_set("insert", cursor_pos)
text_box.see(cursor_pos)
text_box.event_generate('')
root = tk.Tk()
# Listbox
listbox = tk.Listbox(root)
listbox.pack(side = tk.LEFT, padx=10, pady=10)
for e in list_cursor_pos:
listbox.insert('end', f'Go to {e} in the text')
listbox.bind("", on_listbox_select)
# Text box
text_box = tk.Text(root, height=15, width=50)
text_box.pack(side = tk.RIGHT, padx=10, pady=10)
# Create content for text box
content = ""
for i in range(9):
content += f"{i+1}:234567890123456789\n"
text_box.insert("1.0", content)
root.mainloop()
Когда я делаю то же самое, используя кнопку вместо списка, это работает.
import tkinter as tk
def set_cursor_pos():
cursor_pos = "2.5"
text_box.focus_set()
text_box.mark_set("insert", cursor_pos)
root = tk.Tk()
myButton = tk.Button(root, text = "Set cursor position at 2.5", command=set_cursor_pos)
myButton.pack(side = tk.LEFT, padx=10, pady=10)
myButton.focus_set()
# Text box
text_box = tk.Text(root, height=15, width=50)
text_box.pack(side = tk.RIGHT, padx=10, pady=10)
content = ""
for i in range(9):
content += f"{i+1}:234567890123456789\n"
text_box.insert("1.0", content)
root.mainloop()
Подробнее здесь: [url]https://stackoverflow.com/questions/79662720/showing-cursor-in-text-widget-after-selecting-listbox-option[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия