#include <QtGui>
int main(int argc, char **argv){
l1->addWidget(b1);
l2->addWidget(b2);
QStateMachine machine;
QState *s1 = new QState; // state: w1 visible
QState *s2 = new QState; // state: w2 visible
s1->assignProperty(&w1, "visible", true);
s1->assignProperty(&w2, "visible", false);
s2->assignProperty(&w1, "visible", false);
s2->assignProperty(&w2, "visible", true);
s1->addTransition(b1, SIGNAL(clicked()), s2); // [ s1, b1.clicked() ] -> {s2}
s2->addTransition(b2, SIGNAL(clicked()), s1); // [ s2, b2.clicked() ] -> {s1}
machine.addState(s1);
machine.addState(s2);
machine.setInitialState(s1); // start with w1 visible
machine.start();
return app.exec();
}
#include <QtGui>
int main(int argc, char **argv){
QApplication app(argc, argv);
QWidget w1, w2;
QPushButton *b1 = new QPushButton("Change 1");
QPushButton *b2 = new QPushButton("Change 2");
QVBoxLayout *l1 = new QVBoxLayout(&w1);
QVBoxLayout *l2 = new QVBoxLayout(&w2);
l1->addWidget(b1);
l2->addWidget(b2);
QStateMachine machine;
QState *s1 = new QState; // state: w1 visible
QState *s2 = new QState; // state: w2 visible
s1->assignProperty(&w1, "visible", true);
s1->assignProperty(&w2, "visible", false);
s2->assignProperty(&w1, "visible", false);
s2->assignProperty(&w2, "visible", true);
s1->addTransition(b1, SIGNAL(clicked()), s2); // [ s1, b1.clicked() ] -> {s2}
s2->addTransition(b2, SIGNAL(clicked()), s1); // [ s2, b2.clicked() ] -> {s1}
machine.addState(s1);
machine.addState(s2);
machine.setInitialState(s1); // start with w1 visible
machine.start();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks