Название: Координаты виджета относительно экрана Отправлено: 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 от Февраль 24, 2006, 13:32 Пользуй QWidget::mapToGlobaд( pos )
w = new QWidget(parent); ... QPoint pos = w->mapToGlobal( QPoint(0,0) ); потом если нужно pos можно перегнать в локальные относительно другого виджета с mapToLocal() Название: Координаты виджета относительно экрана Отправлено: CoderInside от Февраль 24, 2006, 14:08 Цитата: "yshurik" Пользуй QWidget::mapToGlobaд( pos ) w = new QWidget(parent); ... QPoint pos = w->mapToGlobal( QPoint(0,0) ); потом если нужно pos можно перегнать в локальные относительно другого виджета с mapToLocal() Помогло! ;) Спасибо! |