如果上诉代码MovableWindow的基类是QDialog那代码怎么更改
如果想让MovableWindow的基类更改为QDialog,需要进行以下更改:
- 在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;
};
- 在MovableWindow.cpp文件中,修改构造函数的实现,调用QDialog的构造函数:
MovableWindow::MovableWindow(QWidget *parent)
: QDialog(parent), m_dragging(false)
{
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
}
- 在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 著作权归作者所有。请勿转载和采集!