【问题标题】:SFGUI rendering issue c++SFGUI 渲染问题 c++
【发布时间】:2015-06-22 00:14:01
【问题描述】:

我正在制作一个服务器菜单系统,但是当我从 sfgui 系统中删除所有项目并进入另一个游戏状态时,前一个游戏状态的标签在我将在一分钟内解释的情况下是可见的,首先让我告诉你这个问题。

服务器菜单:

您可以在这里看到问题:

删除代码如下。

void S_ServerMenu::Exit() {
  ServerSelectWindow->Show(false);
  desktop.RemoveAll();
  desktop.Refresh();
}

但是这个问题只在服务器刷新时出现,这里是刷新代码。

void S_ServerMenu::RefreshServers() {
  Document d;
  d.Parse<0>(LoadInServers().c_str());
  servers = ServerParser(d);
  ServerListTable->RemoveAll();
  ServerListTable->RefreshAll();
  for(int i = 0; i < servers.size(); i++) {
    auto label = sfg::Label::Create();

    label->SetText(servers[i].Name);

    MenuItem utm;
    utm.lbl = label;
    utm.index = i;
    utm.owner = this;
    label->SetAlignment(sf::Vector2f(0, 0));
    label->FontSize = 16;
    label->SetParent(ServerListTable);
    label->cont = ServerSelectWindowContainer;
    ServerListTable->Attach(label, sf::Rect<sf::Uint32>(1, i, 1, 1), sfg::Table::FILL | sfg::Table::EXPAND);

    label->GetSignal(sfg::Label::OnLeftClick).Connect(std::bind(&MenuItem::Clicked, utm));
  }
  ServerSelectWindow->RefreshAll();
}

你们中的任何人都知道如何解决这个问题吗?如果可以的话,那就太好了。

【问题讨论】:

  • 我只能说,您使用 SFGUI 错误。我应该查看 SFGUI 存储库中提供的示例代码。你还编辑图书馆吗?因为label-&gt;cont 不存在。只要您运行自己修改过的任何库版本,您基本上就靠自己了。
  • Cont 实际上是一个指向表的共享指针。这不应该影响它。
  • 所以您确实编辑了库?如果您开始编辑库,没人会知道您是否意外损坏了某些东西。但正如我所说,对于这个问题,您应该真正查看提供的示例并调整您的代码,而不是尝试随机的东西,希望它会起作用......

标签: c++ user-interface visual-glitch


【解决方案1】:

我通过为每个屏幕创建单独的桌面来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2010-10-19
    • 2016-06-27
    • 2010-11-29
    • 2011-11-24
    • 2016-04-21
    • 2016-07-06
    相关资源
    最近更新 更多