无法在SFML 2.4中存储文本

问题描述 投票:0回答:1

我正在使用sfml库进行某种图形工作,我想存储我使用键盘输入的文本,但它显示错误请告诉我它是如何可能的:

#include <SFML/Graphics.hpp>
#include <iostream>
#include <string> 
using namespace std; 
int main()
{
   string s="";
   sf::Window window(sf::VideoMode(800, 200), "Ludo",sf::Style::Default);
   window.setKeyRepeatEnabled(false);
    while (window.isOpen())
    {
        sf::Event event;
            while (window.pollEvent(event))
            {
               if (event.type == sf::Event::Closed)
                {
                   window.close();
                }
               else if (event.type == sf::Event::EventType::TextEntered)
               {
                   s += event.type.unicode;
               }
           }
          window.display();
    }
    return 0;
 }

错误是:

sf :: Event事件,表达式必须具有类类型

c++ sfml
1个回答
1
投票

你的问题是这一行:

s += event.type.unicode;

event.type是一个描述事件类型的字段(您在上面的案例检查中使用过它)。

你接下来尝试访问成员unicode,这显然是失败的,因为type不是这里的类或结构。你真正想要的是字段sf::Event::text,它是一个结构。

因此,这条线必须如下所示:

s += event.text.unicode;
© www.soinside.com 2019 - 2024. All rights reserved.