2015-12-21 4 views
1

В моих QBS файл:Почему я не могу использовать вывод консоли в проекте QBS?

import qbs 

Project { 
    name: { 
      console.info("Hello!"); 
      return "ProjectName"; 
    } 
... 
} 

Я получил сообщение: ReferenceError: Не удается найти переменную: консоль

Мой Qt версии 5.5.0. Моя версия Qt Creator - 3.5.1

Я использую двоичные файлы из репозитория MSYS2.

EDIT: Я вижу методы переменной console в текстовом редакторе с помощью горячей клавиши Ctrl-Space.

ответ

2

console logging API поддерживается в Qbs 1.5, и его вывод будет отображаться на вкладке Общие сообщения Qt Creator. В Qbs 1.4.5 и ниже print() - единственная функция отладки. Как показывает другой ответ, вам придется использовать это или throw.

Дата выпуска Qbs 1.5 еще не установлена. Qbs 1.5 был выпущен Среда 11 мая 2016 года.

+0

Большое спасибо! – RovingStone

+0

1.4.5 поддерживает console.error() внутри QtCreator – vpicaver

+0

1.5.0. 1.4.5. –

0

Хотя я не знаю, почему console объект не поддерживается в QBS (все еще застряли в QMAKE землю себе), вы можете получить вывод консоли с print:

 print("Hello!"); 

Это работает консоль, но не в Qt Creator. Это будет разрешено в qbs 1.5, но оно еще не выпущено на момент написания этого, как указано @JakePetroules. Соответствующий, исправленный отчет об ошибке - here.

Для старых версий кажется, что вам просто нужно либо throw "Hello!"; (что делает сборку сбоем), либо запустить qbs из командной строки при отладке проекта (используемая команда может быть удобно скопирована из представления Qt Creator Projects).


Как почему Qt Creator автозавершения показывает, он будет догадку: это может потому, что console жестко закодировано в его автозавершения Javascript в качестве основной функции Javascript, которая всегда доступна. Возможно стоит написать a bug report!

+0

К сожалению, функция print() работает только в консоли, а не в выходе Qt Creator. – RovingStone

+0

@ RovingStone Я немного посмотрел на это. См. Редактирование. – hyde

+1

Qt Creator 3.6 поставляется с Qbs 1.4.4. –

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