c++ - 如何在Qt中拖动一个未装饰的窗口

标签 c++ qt

我已经取消装饰我的窗口如下:

MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent, Qt::FramelessWindowHint | Qt::WindowSystemMenuHint)
{}

如何让它可以拖动?

最佳答案

由于您移除了窗口装饰,因此移除了窗口系统提供移动的任何访问点,因此您必须自己实现它。

您可以重新实现窗口的鼠标事件处理程序,或者在窗口对象上使用事件过滤器。

参见QWidget::mousePressEvent()QWidget::mouseMoveEvent()QWidget::mouseReleaseEvent()QObject::eventFilter() 分别。

当然还有 QWidget::move() 用于实际移动。

因为您已经有了一个派生类,实现事件处理程序可能是更直接的方法。

关于c++ - 如何在Qt中拖动一个未装饰的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42409736/

相关文章:

c++ - 发送可变大小的二维数组以在 C++ 中运行

c# - 在 Visual Studio 2015 中调试 native 应用程序加载的托管 DLL

c++ - 素数C++

c++ - ATL 链接器错误 : Cannot open input file ***. obj

c++ - 使用qml + QQuickView作为初始屏幕不起作用

c++ - proxygen 中的 http 客户端?

c++ - 从模板化函数返回字符串时,bad_any_cast异常

Qt:动态小部件信号和插槽连接

qt - 在 QML 中绘制弧/圆扇区?

c++ - 使用每个实例颜色和偏移的 OpenGL 实例渲染