Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ruzik от Июнь 16, 2012, 15:38



Название: Глобальные координаты объекта
Отправлено: ruzik от Июнь 16, 2012, 15:38
Здравствуйте, у меня есть QLineEdit и QCompleter к нему, понадобилось реализовать меню, чтобы оно имело ширину большую чем QLineEdit.
Пробовал реализовать через этот код:
_completer->complete(QRect(/*x*/searchLineEdit->x(), /*y*/searchLineEdit->y() + searchLineEdit->height() + 2
                            ,/*width*/searchLineEdit->width() + 60, /*height*/ 120));
Если с шириной и высотой все хорошо, то координаты вычисляются неправильно, слот скорее всего ждет глобальных координат, а не локальных, которые предоставляют методы x() и y().
Соответственно вопрос: как можно узнать глобальные координаты объекта или как можно задумку реализовать по-другому?
Заранее спасибо!


Название: Re: Глобальные координаты объекта
Отправлено: kambala от Июнь 16, 2012, 15:44
QWidget::mapToGlobal()


Название: Re: Глобальные координаты объекта
Отправлено: ruzik от Июнь 16, 2012, 15:58
Спасибо за помощь, но похоже проблема не в этом, так как в это случае меню вообще выпадает из поля видимости хотя и имеет координаты
QPoint(725,432), вместо первоначальных QPoint(64,30).
Использовал следующий код:
    _completer->complete(QRect(
                             QWidget::mapToGlobal(QPoint(searchLineEdit->x()
                                                         , searchLineEdit->y() + searchLineEdit->height() + 2)),
                             QSize(searchLineEdit->width() + 100, 120)));


Название: Re: Глобальные координаты объекта
Отправлено: kambala от Июнь 16, 2012, 16:16
думаю использовать надо в виде searchLineEdit->mapToGlobal


Название: Re: Глобальные координаты объекта
Отправлено: ruzik от Июнь 16, 2012, 16:22
Нет, не помогло, похоже как я уже говорил дело не в глобальности/локальности координат, а в чем-то другом