我已经取消装饰我的窗口如下:
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/