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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Координаты виджета относительно экрана  (Прочитано 14146 раз)
CoderInside
Гость
« : Февраль 24, 2006, 12:39 »

Добрый день!
Мне нужно чтобы по нажатию на кнопку над ней появлялся диалог. Т.е. в не зависимости от размера окна, положения и прочего он появлялся именно над ней (в смысле вверху).
Вопрос: Как узнать экранные координаты кнопки, чтобы потом можно было на это место передвинуть диалог?

QDialog * dialogSmile = new QDialog(this);
dialogSmile->move(buttonAddSmile->x(),buttonAddSmile->y());
dialogSmile->exec();

Этот код не работает как надо, потому что x() и y() возвращают координаты относительно родительского виджета...

" This property holds the x coordinate of the widget relative to its parent including any window frame."

Как быть?

P.S. Qt 4.1.1
Записан
yshurik
Гость
« Ответ #1 : Февраль 24, 2006, 13:32 »

Пользуй QWidget::mapToGlobaд( pos )

w = new QWidget(parent);
...

QPoint pos = w->mapToGlobal( QPoint(0,0) );

потом если нужно pos можно перегнать в локальные относительно другого виджета с mapToLocal()
Записан
CoderInside
Гость
« Ответ #2 : Февраль 24, 2006, 14:08 »

Цитата: "yshurik"
Пользуй QWidget::mapToGlobaд( pos )

w = new QWidget(parent);
...

QPoint pos = w->mapToGlobal( QPoint(0,0) );

потом если нужно pos можно перегнать в локальные относительно другого виджета с mapToLocal()



Помогло! Подмигивающий Спасибо!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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