2014-12-16 4 views
4

Я загрузил Qt 5.4 для Windows, запустив его в Windows 8.1 Pro. Он поставляется с MingW и Qt Creator 3.3.Qt Creator не может разрешить контейнеры STL

Я использую Qt в течение нескольких лет. Все еще очень необходимый компонент, кажется, отсутствует в Qt Creator IDE. Предположим, что класс Card определяется с помощью функции getSymbol():

class Card 
{ 
public: 
    string getSymbol() const; 
} 

Где-то в коде У меня есть std::vector из Card S:

vector<Card> playable; 

И где-то еще в коде:

playable[0].getSymbol(); 
      ^----------------- Note this dot 

Когда я набираю период в строке выше, Qt Creator должен перечислять доступные функции и переменные Card класс, который будет использоваться, так же, как IntelliSense работает в VS. Но этого не происходит. Тем не менее, когда я создаю объект типа Card, то точка запускает Qt Creator, чтобы показать доступные функции:

enter image description here

Почему эта функция не работает, когда Card объекты помещаются в контейнеры STL? Есть ли какие-либо настройки, которые необходимо включить?

+0

У меня такая же проблема, но я считаю, что это ограничение QtCreator, и правильным местом для этого будет сообщение об ошибке/запрос функции. – ypnos

+4

Существует [этот отчет об ошибке] (https://bugreports.qt-project.org/browse/QTCREATORBUG-8922). – thuga

ответ

2

Это вопрос давно обсуждался и снова задавался вопросом на форумах и списках рассылки. Как правильно thuga показали в комментариях, это соответствующий отчет об ошибке для мониторинга:

Code completion does not work for std::vector of objects

Обратите внимания, что QtCreator в первую очередь предназначен для работы с Qt кодом, и поэтому вы должны использовать QVector в таких проектах, которыми работают. Я не говорю, что это не стоит исправлять, но это, по крайней мере, история.

Это может быть все ближе и ближе с использованием clang внутри QtCreator, но я думаю, вам нужно будет подождать.

Смежные вопросы