16,235
社区成员
发帖
与我相关
我的任务
分享
#ifndef WB_H
#define WB_H
#include <QWebView>
#include <QMouseEvent>
#include <QFrame>
#include <QWebFrame>
class Wb : public QWebView
{
Q_OBJECT
public:
Wb(QWidget * parent=0);
~Wb();
protected:
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
virtual void mouseMoveEvent(QMouseEvent *event);
private:
QPoint offset;
QPoint temp;
QPoint move_point; //移动的距离
bool mouse_press; //按下鼠标左键
};
#endif // WB_H
#include "wb.h"
Wb::Wb(QWidget * parent):QWebView(parent)
{
setWindowFlags(Qt::FramelessWindowHint | Qt::Dialog);
setAttribute(Qt::WA_TranslucentBackground);
//初始化为未按下鼠标左键
mouse_press = false;
}
Wb::~Wb()
{
}
void Wb::mousePressEvent(QMouseEvent *event)
{
temp=event->pos();
qDebug()<<"temp";
qDebug()<<temp;
if(temp.x()<100&&temp.y()<100){
//只能是鼠标左键移动和改变大小
if(event->button() == Qt::LeftButton)
{
mouse_press = true;
}
//窗口移动距离
move_point = event->globalPos() - pos();
}else{
this->setMouseTracking(true);
}
}
void Wb::mouseReleaseEvent(QMouseEvent *event)
{
mouse_press = false;
}
void Wb::mouseMoveEvent(QMouseEvent *event)
{
//移动窗口
if(mouse_press)
{
QPoint move_pos = event->globalPos();
move(move_pos - move_point);
}
}
#include "wb.h"
#include <QtWidgets/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Wb w;
w.load(QUrl("http://www.baidu.com"));
w.show();
return a.exec();
}