头文件.h
protected:
void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void keyPressEvent(QKeyEvent *event);
private:
QPoint m_spacPos;
QPoint m_windowTopLeftPoint;
bool m_bPressed;
.cpp
void MainWindow::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_bPressed = true;
//获得鼠标的初始位置
m_spacPos = event->globalPos();
//获得窗口的初始位置
m_windowTopLeftPoint = this->frameGeometry().topLeft();
}
}
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
if (m_bPressed)
{
//获得鼠标移动的距离
QPoint distance = event->globalPos() - m_spacPos;
//改变窗口的位置
this->move(m_windowTopLeftPoint + distance);
}
}
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_bPressed = false;
}
}
void MainWindow::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)
{
ui->pushButton_password->setFocus(); //设置光标焦点
on_pushButton_password_clicked();
}