Форум сайта python.su
Мне нужно вернуть номер 1-го символа выделенного текста для окна Tkinter (виджет Text). Раньше я для этого делал
prev=txt.get('sel.first','sel.last').replace('\n','') idx = txt.search(prev,'1.0','end')
Отредактировано vanvanov (Янв. 8, 2014 14:39:42)
Офлайн
Сложно понять, что Вы хотите.
Я понял так:
1. Есть виджет Text.
2. Пользователь выделяет в Text какую-то часть текста.
3. Нажимает кнопку (button или просто правую кнопку мыши).
4. Программа возвращает номер первого символа из выделенного куска (во всем тексте - “строка.столбец”)?
Я правильно понял?
P.S. Готов помочь, но нужно понять, что в итоге получится…
P.S.S. Какой питон?
Отредактировано 4kpt_II (Янв. 8, 2014 17:40:26)
Офлайн
4kpt_IIПравильно, причем не обязательно “строка.столбец”, а просто позиция фрагмента по отношению к тексту, который вставляется в виджет. Например, если текст “юный комсомолец готов служить Советскому Союзу”, а фрагмент - “комсомолец”, то возвращается либо 6 (по буквам), либо (лучше) 2 (по словам). Python 3.1.3.
Сложно понять, что Вы хотите. Я понял так:1. Есть виджет Text. 2. Пользователь выделяет в Text какую-то часть текста.3. Нажимает кнопку (button или просто правую кнопку мыши)4. Программа возвращает номер первого символа из выделенного куска (во всем тексте - “строка.столбец”)
Отредактировано vanvanov (Янв. 8, 2014 17:44:43)
Офлайн
Держите позицию…
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 (Янв. 8, 2014 18:00:02)
Офлайн
По-поводу слова в строке, то прямого метода нет. Нужно вытянуть строку (номер строки у Вас уже есть) и простым анализом найти нужное слово и потом его позицию в строке.
Отредактировано 4kpt_II (Янв. 8, 2014 18:03:45)
Офлайн