如果想让MovableWindow的基类更改为QDialog,需要进行以下更改:

  1. 在MovableWindow.h文件中,修改类的继承关系:
class MovableWindow : public QDialog
{
    Q_OBJECT

public:
    MovableWindow(QWidget *parent = nullptr);
    ~MovableWindow();

private:
    QPoint m_previousPos;
    bool m_dragging;

protected:
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;
    void mouseReleaseEvent(QMouseEvent *event) override;
};
  1. 在MovableWindow.cpp文件中,修改构造函数的实现,调用QDialog的构造函数:
MovableWindow::MovableWindow(QWidget *parent)
    : QDialog(parent), m_dragging(false)
{
    setWindowFlags(Qt::FramelessWindowHint);
    setAttribute(Qt::WA_TranslucentBackground);
}
  1. 在main.cpp文件中,创建MovableWindow对象时传入父窗口:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QDialog parent; // 创建一个父窗口
    MovableWindow w(&parent); // 将父窗口作为参数传入
    w.show();
    return a.exec();
}
``

原文地址: https://www.cveoy.top/t/topic/ewLC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录