将上面的代码合在一起给我
时间: 2024-04-06 16:30:31 浏览: 87
好的,以下是将前面的代码整合在一起的示例:
```
#include <QApplication>
#include <QDesktopWidget>
#include <QMouseEvent>
#include <QWidget>
class Form2 : public QWidget
{
Q_OBJECT
public:
explicit Form2(QWidget *parent = nullptr);
virtual ~Form2();
protected:
virtual void mousePressEvent(QMouseEvent *event) override;
virtual void mouseMoveEvent(QMouseEvent *event) override;
private:
QPoint m_pressPos;
QPoint m_windowPos;
};
Form2::Form2(QWidget *parent) :
QWidget(parent)
{
// 设置窗口大小
setFixedSize(400, 300);
// 设置窗口位置为屏幕中央
QRect screenGeometry = QApplication::desktop()->screenGeometry();
int x = (screenGeometry.width() - width()) / 2;
int y = (screenGeometry.height() - height()) / 2;
move(x, y);
// 去除窗口边框
setWindowFlags(Qt::FramelessWindowHint);
// 显示窗口
show();
}
Form2::~Form2()
{
}
void Form2::mousePressEvent(QMouseEvent *event)
{
m_pressPos = event->pos();
m_windowPos = this->pos();
}
void Form2::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons() & Qt::LeftButton)
{
QPoint delta = event->pos() - m_pressPos;
this->move(m_windowPos + delta);
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Form2 w;
return a.exec();
}
```
这个示例中,实现了拖动无边框窗口的功能,窗口大小和位置设置为固定值,并在屏幕中央显示。如果需要修改窗口大小和位置,可以修改 setFixedSize() 和 move() 函数的参数。
阅读全文