Я знаю, что есть ответы, но они не удовлетворяют мой вопрос. Это не работает для меня.Позиция всплывающее окно над QWidget во время выполнения
У меня есть простой пользовательский виджет под названием PopUp. Он наследует SmartPanel, который является стиль панели и содержит только:
setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
setAttribute(Qt::WA_QuitOnClose, true);
setAttribute(Qt::WA_TranslucentBackground);
Это показывает окно, которое должно появиться на кнопку вы нажимаете, что выскакивает вверх или закрывается. если вы входите и выходите из него, он закрывается сам по себе.
Я пробовал:
А), что делает его ребенка кнопки, поэтому там, где кнопка движется, движется. Очевидно, должно работать. Что ж. Не работает вообще ... Он всегда остается на 0,0 в левом верхнем углу окна. Я даже перемещаю окно, кнопка перемещается, и всплывающее окно остается тем же ... даже будучи его ребенком !.
SmartPopUp::SmartPopUp(QWidget *parent): SmartPanel(parent)
{
setContentsMargins(30,10,20,20);
hide();
QVBoxLayout* lyt = new QVBoxLayout();
setLayout(lyt);
}
B) Сохранение в виде ссылки на доц. виджет, чтобы получить свою позицию. Получение положения виджета не работает должным образом. Не знаю, почему ...
SmartPopUp::SmartPopUp(QWidget* associatedWidget, QWidget *parent): SmartPanel(parent)
{
associatedWidget_ = associatedWidget;
setContentsMargins(30,10,20,20);
hide();
QVBoxLayout* lyt = new QVBoxLayout();
setLayout(lyt);
}
Как заставить его перемещаться вместе с изменяющимся положением кнопки?
... Это не должно быть с положением НА НАКОНЕ. Что вы подразумеваете под «для этого родителя» ?. Какой исходный вопрос. Как получить позицию кнопки и поместить ее всегда в одно и то же место, а не просто QCursor :: pos(). X() ... и y() – darkgaze