Найти - Пользователи
Полная версия: Вернуть позицию выделенного фрагмента из окна Tkinter
Начало » GUI » Вернуть позицию выделенного фрагмента из окна Tkinter
1
vanvanov
Мне нужно вернуть номер 1-го символа выделенного текста для окна Tkinter (виджет Text). Раньше я для этого делал
prev=txt.get('sel.first','sel.last').replace('\n','')
idx = txt.search(prev,'1.0','end')
,
однако при этом могут найтись и дублирующиеся фрагменты, если они присутствуют в тексте, а мне нужен только выделенный фрагмент.
4kpt_II
Сложно понять, что Вы хотите.
Я понял так:
1. Есть виджет Text.
2. Пользователь выделяет в Text какую-то часть текста.
3. Нажимает кнопку (button или просто правую кнопку мыши).
4. Программа возвращает номер первого символа из выделенного куска (во всем тексте - “строка.столбец”)?
Я правильно понял?

P.S. Готов помочь, но нужно понять, что в итоге получится…

P.S.S. Какой питон?
vanvanov
4kpt_II
Сложно понять, что Вы хотите. Я понял так:1. Есть виджет Text. 2. Пользователь выделяет в Text какую-то часть текста.3. Нажимает кнопку (button или просто правую кнопку мыши)4. Программа возвращает номер первого символа из выделенного куска (во всем тексте - “строка.столбец”)
Правильно, причем не обязательно “строка.столбец”, а просто позиция фрагмента по отношению к тексту, который вставляется в виджет. Например, если текст “юный комсомолец готов служить Советскому Союзу”, а фрагмент - “комсомолец”, то возвращается либо 6 (по буквам), либо (лучше) 2 (по словам). Python 3.1.3.
4kpt_II
Держите позицию…

import tkinter
#
#
def get_pos(event):
    print text.index("sel.first")
#
root = tkinter.Tk()
#
text = tkinter.Text(root)
text.pack()
#
but = tkinter.Button(root, text="Click!")
but.bind("<Button - 1>", get_pos)
but.pack()
#
root.mainloop()

Будут вопросы - пишите…
4kpt_II
По-поводу слова в строке, то прямого метода нет. Нужно вытянуть строку (номер строки у Вас уже есть) и простым анализом найти нужное слово и потом его позицию в строке.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB