Я знаю про способы по типу
void mousePressEvent(QMouseEvent *evt)
{
oldPos = evt->globalPos();
}
void mouseMoveEvent(QMouseEvent *evt)
{
const QPoint delta = evt->globalPos() - oldPos;
if (locked)
// if locked, ignore delta on y axis, stay at the top
move(x()+delta.x(), y());
else
move(x()+delta.x(), y()+delta.y());
oldPos = evt->globalPos();
}
Но я хотел узнать, возможно ли сделать это более правильно, например как в WPF, просто при ивенте на клик вызывать DragMove(). Или как в electrone, просто обозначив DragRegion? Просто ,например, тот же телеграм десктоп, насколько я знаю, он на Qt, и при этом у него безрамочное окно с "правильным" перетаскиванием.