c++ - 在 Qt 图形 View 中锁定选择

标签 c++ qt qt4

是否可以在 Qt 图形 View 中“锁定”选择,使点击无效?

我的场景目前可以处于不同的状态,在某些状态下,即使点击发生,选择也不应该改变。

最佳答案

在连接到场景的 View 中重新实现 mousePressEvent(..) 以忽略事件。

void MyView::mousePressEvent(QMouseEvent* event)
{
    if ( ignoreClickFlag && ( dragMode() == QGraphicsView::RubberBandDrag ||
                              items( event->pos() ).size() ) ) {
        event->accept();
        return;
    }

    QGraphicsView::mousePressEvent( event );
}

MyView::ignoreClickFlag 只是一个 bool 成员,您可以在插槽中设置它。

因此,如果忽略模式打开,并且 View 处于橡皮筋拖动模式和/或光标下有节点,则单击将被忽略。另一种说法是,如果用户可以执行选择拖动和/或光标下有项目,则单击将被忽略,但如果 View 处于平移拖动模式且光标下没有项目,则不会。

关于c++ - 在 Qt 图形 View 中锁定选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078003/

相关文章:

C++ 技术 : Type-Erasure vs. 纯多态性

QT:使用缩放调整 QImage 的大小

ruby - Ruby 中的 Qt Model/View 编程示例和教程

c++ - 我们应该通过引用还是按值传递 shared_ptr ?

c++ - c++多线程应用程序上的内存损坏

c++ - CUDA图像处理

c++ - QPainterPath画圆弧

c++ - 确保所有字节都正确写入文件

c++ - QTableView - 不允许用户编辑单元格

c++ - 如何强制 QLocale::system 改变