이 내 간단한 코드입니다 : 내가QStateMachine
만든 새로운 제작 한 scene
, view
및 QPixmapItem
QGraphicsScene *scena = new QGraphicsScene();
QGraphicsPixmapItem *object1= new QGraphicsPixmapItem();
object1->setPixmap(QPixmap(":/prova/prova.png"));
QGraphicsView *view = new QGraphicsView();
view->setScene(scena);
scena->addItem(object1);
view->show();
와 옆 새로운 QStateMachine
두 QState
QStateMachine *machine = new QStateMachine();
QState *s1 = new QState();
QState *s2 = new QState();
machine -> addState(s1);
machine -> addState(s2);
//mouse click in a void mousePressEvent
s1 -> addTransition(this,SIGNAL(mouseclick()),s2);
machine -> start();
에
view
을 표시하고object1
을 표시하고 싶습니다.마우스를 클릭하여 전환점을
s2
에 추가했습니다.s2
나는 단지object1
을 숨기고 싶습니다.
어떻게하면됩니까? 누군가가 작은 자습서로 나를 도울 수 있습니까?
저는 MinGW 4.9.2 32bit에서 Qt 5.6.0을 사용하고 있습니다.
당신은 [이 답변을 읽었습니다] (http://stackoverflow.com/a/37667951/1329652)? 계속 비슷한 질문을 반복하고있는 것처럼 보입니다. –
예, 답을 읽었으며'QState'에'보기 '를 지정할 수 없다는 것을 깨달았습니다. 내 문제는 내가'장면'과'장면'안에'QGraphicsPixmapObject'가 있다는 것입니다. 그것은 카드 게임이기 때문에 나는 그 물체를 20 번 숨기고 보여 주어야하며'for '를 사용해서 그것을 할 수 없으므로'QStateMachine'을 사용하라고 말했습니다. 이제'QState'와'QStateMachine'을 만들었지 만 그것을 사용할 수는 없습니다. 's1'에서's2'로'signals'으로 전환했는데 이제는 각 QState에서 보여주고 싶은 물건을 지정하려고합니다. 할 수 있습니까? –
"그 물건을 숨기고 20 번이나 보여줘야 해."같은거야? 20 번 깜박이시겠습니까? 아니면 순차적으로 20 개의 다른 대상을 보여주고 싶습니까? –