#窗口,无边框,无法移动的问题
##.h文件
#include <QMouseEvent>
protected:
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
QPoint mousePoint;
bool mouse_press;
##.cpp文件设置
setWindowFlags(Qt::FramelessWindowHint);
void Softdog::mousePressEvent(QMouseEvent *event)
{
if( (event->button() == Qt::LeftButton) ){
mouse_press = true;
mousePoint = event->globalPos() - this->pos();
// event->accept();
}
else if(event->button() == Qt::RightButton){
//如果是右键
this->close();
}
}
void Softdog::mouseMoveEvent(QMouseEvent *event)
{
// if(event->buttons() == Qt::LeftButton){ //如果这里写这行代码,拖动会有点问题
if(mouse_press){
move(event->globalPos() - mousePoint);
// event->accept();
}
}
void Softdog::mouseReleaseEvent(QMouseEvent *event)
{
mouse_press = false;
}
问题:这个方法好像没办法获取新建QWidget窗口的焦点,只能获取mainwindow,主窗体的焦点?
比如说
QWidget* widget=new QWidget;
widget->setWindowFlags(Qt::FramelessWindowHint);
widget->show();
这种情况下,把焦点放到这个widget上,也不触发上述三个鼠标槽函数,为什么?