java窗口移动事件_使用Qt,如何使用鼠标移动事件向上或向左调整窗口小部件的大小...

我会做这样的事情:

void MyQMainWindow::updateWidgetGeometry()

{

if (_initial == QPoint(-1,-1)) {

return;

}

x = qMin(_initial.x(), _current.x());

y = qMin(_initial.y(), _current.y());

w = abs(_initial.x() - _current.x());

h = abs(_initial.y() - _current.y());

myQWidget.setGeometry(x, y, w, h);

}

void MyQMainWindow::mousePressEvent(QMouseEvent * E)

{

_initial = e->pos();

_current = e->pos();

updateWidgetGeometry()

myQWidget->show();

}

void MyQMainWindow::mouseMoveEvent(QMouseEvent * E)

{

_current= e->pos();

updateWidgetGeometry()

}

void MyQMainWindow::mouseReleaseEvent(QMouseEvent *)

{

_current = QPoint(-1,-1);

_initial = QPoint(-1,-1);

myQWidget.hide();

}

在没有编译器的情况下输入它 .

顺便说一下,你可能还需要setMouseTracking(true),这样如果你的鼠标移动事件发生在你的MyQMainWindow处理它的小部件内 . 我不确定那一点 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值