我想编写一个函数来显示我的 GUI 的基本流程,例如,如果我在插槽中调用该函数,它会以 FileMenu->Open(触发信号并启用与其连接的插槽)等状态开始转换。我尝试使用状态机:
d1->assignProperty(ui->menuFile,"visible",true);
d0->addTransition(d1);
d1->addTransition(ui->actionOpen,SIGNAL(triggered()),d0);
dem->addState(d0);
dem->addState(d1);
dem->setInitialState(d0);
dem->start();
文件菜单未出现在该位置。此外,信号不会在状态转换时触发。我是新手QStateMachine
。我不确定以这种方式触发信号是否可行。如果是,那么我的代码有什么问题,或者有没有更好的方法来做到这一点?
编辑:文件菜单更正:
QRect r0 = this->geometry();
QRect tbar = ui->menuBar->geometry();
QRect r = ui->menuFile->geometry();
r.setCoords(r0.x(),r0.y()+tbar.height(),r0.x()+r.width(),r0.y()+r.height()+tbar.height());
ui->menuFile->setGeometry(r);
ui->menuFile->show();