Qt 4:无标题栏移动窗口

7
我有一个标记为Qt::Popup的窗口(没有标题栏和关闭按钮等),希望通过拖动/点击非标题栏区域来移动它....在Win32上,解决方案可能是WM_NCLBUTTONDOWN,但我的要求是跨平台的。
2个回答

20

尝试手动移动窗口:

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


6
if (event->buttons() && Qt::LeftButton) {

这个条件对于每个鼠标按钮都成立。

也许你已经记住了这个。

if (event->buttons() & Qt::LeftButton) {

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接