7

我有一个Qt::Popup标记的窗口(它没有标题栏和关闭等按钮)并且想通过拖动\单击非标题栏区域来移动....

在 Win32 上,解决方案可能是WM_NCLBUTTONDOWN但我的要求是跨平台的。

4

2 回答 2

18

试试这个手动移动窗口:

void PopupWindow::mousePressEvent(QMouseEvent *event){
    mpos = event->pos();
}

void PopupWindow::mouseMoveEvent(QMouseEvent *event){
    if (event->buttons() & Qt::LeftButton) {
        QPoint diff = event->pos() - mpos;
        QPoint newpos = this->pos() + diff;

        this->move(newpos);
    }
}

并在QPoint mpos某处声明。

于 2011-04-01T14:12:09.367 回答
6
if (event->buttons() && Qt::LeftButton) {

对于每个鼠标按钮,此条件都为真

也许你记住了这一点

if (event->buttons() & Qt::LeftButton) {
于 2011-08-31T11:34:51.433 回答