如何用Wt将一些值发布到另一个页面?

时间:2013-12-23 17:12:48

标签: c++ post wt

我有另一页的WAnchor,它改变了内部路径。我还有一个函数internalPathChange(),它对internalPathChanged()作出反应,并根据内部路径调用正确的函数。

如何使用POST将值从第一页提供给第二页?

1 个答案:

答案 0 :(得分:1)

您应该使用小部件。 Wt不知道post和不同html页面的概念。

HangmanGame.C文件中可以找到一个很好的例子here。 您可以创建自己的小部件,并在这些小部件的构造函数中指定所需的值。然后他们使用Wt::WStackedWidget仅显示新的“页面”。

他们使用以下代码:

void HangmanGame::handleInternalPath(const std::string &internalPath)
{
  if (session_.login().loggedIn()) {
    if (internalPath == "/play")
      showGame();
    else if (internalPath == "/highscores")
      showHighScores();
    else
      WApplication::instance()->setInternalPath("/play",  true);
  }
}

void HangmanGame::showHighScores()
{
  if (!scores_)
    scores_ = new HighScoresWidget(&session_, mainStack_);

  mainStack_->setCurrentWidget(scores_);
  scores_->update();

  backToGameAnchor_->removeStyleClass("selected-link");
  scoresAnchor_->addStyleClass("selected-link");
}

void HangmanGame::showGame()
{
  if (!game_) {
    game_ = new HangmanWidget(session_.userName(), mainStack_);
    game_->scoreUpdated().connect(&session_, &Session::addToScore);
  }

  mainStack_->setCurrentWidget(game_);

  backToGameAnchor_->addStyleClass("selected-link");
  scoresAnchor_->removeStyleClass("selected-link");
}

因此,在此示例中,HighScoresWidgetHangmanWidget是您要将值发布到的“页面”。