我已经在QGraphicsScene子类中为mousePressEvent()实现了信号,但是我不知道如何在UI中使用该类。我可以在用户界面中添加QGraphicsView小部件,但是如何访问场景呢?
GraphicsScene *scene = new QGraphicsScene(this);
// Add pixmap, etc
ui->graphicsView->setScene(scene);
// Here's where I'm stuck
connect(ui->whereIsTheScene?, SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));
编辑:这正在编译,但鼠标按下事件被忽略。我认为这是一个单独的问题,所以我发布了another question
最佳答案
在您的示例中:使用已经拥有的scene
指针:
connect(scene, SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));
或者,如果不再有指针放置,请使用this function:
connect(ui->graphicsView->scene(), SIGNAL(clicked(QPoint)), this, SLOT(someSlot(QPoint));
(未经测试,但我认为没有理由不起作用)
关于c++ - 在ui中使用QGraphicsScene子类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3548290/