Russian Qt Forum
Ноябрь 24, 2024, 22:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Глобальные координаты объекта  (Прочитано 4465 раз)
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().
Соответственно вопрос: как можно узнать глобальные координаты объекта или как можно задумку реализовать по-другому?
Заранее спасибо!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июнь 16, 2012, 15:44 »

QWidget::mapToGlobal()
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
ruzik
Гость
« Ответ #2 : Июнь 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)));
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июнь 16, 2012, 16:16 »

думаю использовать надо в виде searchLineEdit->mapToGlobal
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
ruzik
Гость
« Ответ #4 : Июнь 16, 2012, 16:22 »

Нет, не помогло, похоже как я уже говорил дело не в глобальности/локальности координат, а в чем-то другом
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 23.