Показание курсора в текстовом виджете после выбора опции ListBoxPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Показание курсора в текстовом виджете после выбора опции ListBox

Сообщение Anonymous »

Следующий код Python генерирует поле списка и виджет текста. Когда я выбираю опцию, курсор должен отображаться в текстовом виджете, но это не так. Однако, если я нажимаю вкладку, активируется текстовый виджет, а затем я вижу курсор. < /P>
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()
< /code>
Когда я делаю то же самое, используя кнопку вместо блока списка, она работает. < /p>
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»