我正在一个盒子里制作一个表格。我必须提供输入,我输入的任何内容都会在我输入时显示在框中。我已经到了获得输入但无法在框中显示的地步。
这是片段:
case Event::TextEntered:
if (isSelected)
{
char print;
int xcor = 149;
sf::Text t;
t.setFont(font);
do
{
print = event.text.unicode;
//149.25
t.setCharacterSize(15);
t.setColor(Color::Black);
t.setString(print);
t.setPosition(xcor+1, 25);
window.draw(t);
//window.display();
} while (event.text.unicode!=13);
//cout << (char) event.text.unicode;
}
break;
最佳答案
无论是否有 TextEntered
事件,您都应该在每一帧绘制文本。您还需要一个字符串来存储文本。所以您的主循环看起来像这样:
sf::String text_string;
sf::Text text;
text.setCharacterSize(15);
text.setColor(Color::Black);
text.setPosition(150, 25);
while (window.isOpen())
{
// Process events
sf::Event event;
while (window.pollEvent(event))
{
switch (event.type)
{
case Event::TextEntered:
if (isSelected)
{
text_string += sf::String(event.text.unicode);
text.setString(text_string);
}
break;
// other events ...
}
}
window.clear();
window.draw(text)
window.display();
}
关于c++ - 如何显示实时输出 SFML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30564726/