作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以创建一个可移动的 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);
最佳答案
我最终查看了源代码,@G.M.指出,QGraphicsItem::mouseMoveEvent() 的代码明确检查鼠标左键:
void QGraphicsItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if ((event->buttons() & Qt::LeftButton) && (flags() & ItemIsMovable)) {
所以除了在派生类中重新实现移动之外什么也做不了。
关于c++ - 通过鼠标右键而不是左键使 QGraphicsItem 可移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38605930/
在 C# - WinForms 中,如何检测在 ToolStripTextBox 中按下 Alt + 左键? 最佳答案 protected override bool ProcessCmdKe
我希望 Resharper 中的 Control+LeftClick 绑定(bind)到“Goto Implementation”而不是“Goto Declaration”。这是因为我使用了很多接口(
我是一名优秀的程序员,十分优秀!