Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Fregloin от Ноябрь 11, 2014, 11:25



Название: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Fregloin от Ноябрь 11, 2014, 11:25
Привет. Как узнать экранную позицию в глобальных координатах (или локальных координатах виджета) мигающего курсора ввода?
Мне нужно при определенном событии возле этого курсора вывести свое контекстное меню. В документации не нашёл.


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Fregloin от Ноябрь 11, 2014, 11:35
нашёл защищенный метод cursorRect(), но хотелось бы как то без наследования, т.к. форма кидается в дизайнере.


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Johnik от Ноябрь 11, 2014, 11:42
В дизайнере есть возможность "Преобразовать в ..."


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Fregloin от Ноябрь 11, 2014, 12:30
и оно позволяет привязаться к любому классу? никогда не пробовал такой подход.


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Johnik от Ноябрь 11, 2014, 12:38
Оно позволяет класс родитель (кинутый на форму в дизайнере) преобразовать к потомку при компиляции.


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: VPS от Ноябрь 11, 2014, 14:53
Примерную позицию контекстного меню можно задать через вычисление координат самого виджета, плюс значения метрик шрифта и позицию курсора в виджете.


Название: Re: QLineEdit - узнать экранную позицию текстового курсора
Отправлено: Fregloin от Ноябрь 12, 2014, 17:46
ну да, можно и так...