void Dialog::mousePressEvent(QMouseEvent* event)
{
if(event->button() == Qt::LeftButton)
{
mousePos=event->pos();
}
}
void Dialog::mouseMoveEvent(QMouseEvent* event)
{
if(event->buttons() == Qt::LeftButton)
{
if(QDialog::isMaximized() || QDialog::isMinimized())
{
return;
}
else
{
if (ui.widget_2->underMouse()) //仅在标题栏触发
{
QDialog::move(QDialog::mapToGlobal(event->pos()-mousePos));
}
}
}
event->accept();
}
QT窗口实现简单的拖动效果
最新推荐文章于 2026-04-26 02:41:05 发布
该代码段定义了两个事件处理函数:mousePressEvent和mouseMoveEvent。当左键被按下时,记录鼠标位置。在鼠标移动事件中,如果对话框未最大化或最小化,且鼠标在标题栏(widget_2)上,则移动对话框的位置。
679

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



