是否可以创建一个可移动的QGraphicsItem,用鼠标右键而不是左键移动?
我通过搜索找到的唯一内容是一个帖子which suggests using QGraphicsItem::setAcceptedMouseButtons(),我尝试将其设置为仅接受右键点击,但之后项目停止了可移动。
这是我尝试过的代码:
QGraphicsScene *scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QGraphicsRectItem *item = scene->addRect(0, 0, 100, 100);
item->setFlag(QGraphicsItem::ItemIsMovable);
item->setAcceptedMouseButtons(Qt::RightButton);
答案 0 :(得分:1)
我最终查看了源代码,并作为@ G.M。指出,QGraphicsItem :: mouseMoveEvent()的代码显式检查鼠标左键:
void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if ((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) {
除非重新实现派生类中的移动,否则无法完成任何事情。