头文件.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();
}
Qt窗口拖动与键盘响应
本文介绍了一个使用Qt实现的简单程序,该程序通过监听鼠标事件实现窗口拖拽功能,并通过键盘事件触发按钮点击行为。文章详细展示了如何在Qt中处理鼠标按下、移动和释放事件来移动窗口位置,同时介绍了如何响应键盘输入。
3667

被折叠的 条评论
为什么被折叠?



