Russian Qt Forum
Ноябрь 26, 2024, 09:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
[РЕШЕНО] Не видно qt script generator bindings
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] Не видно qt script generator bindings (Прочитано 3367 раз)
Andrew12
Гость
[РЕШЕНО] Не видно qt script generator bindings
«
:
Ноябрь 08, 2010, 23:31 »
Здравствуйте,
Пишу модуль работы с gui формами с поддержкой скриптов.
1. Собрал QtScriptGenerator, получил набор .dll (qtscript_cored.dll, и т.д.)
2. Разместил их в каталоге data/script
3. Добавил в app.setLibraryPaths путь.
4. При проверке engine.availableExtensions() не обнаруживается ни одного расширения, лишь слегка задумывается.
5. Работало на qt 4.7 beta. Данная проблемма появилась после переустановки последнего qt 4.7 release.
По подозрению, что проблемма в несовпадении версий, после 10 попыток пересобрать заново mingw, qt47 и qtscript generator решил обратиться сюда.
QT: ver. 4.7, MinGW: ver 4.5, QTScriptGenerator с gitorius.org.
Подскажите, в чем может быть проблемма. Может как-то по особому надо пересобрать QT?
«
Последнее редактирование: Ноябрь 10, 2010, 01:03 от Andrew12
»
Записан
asvil
Гость
Re: Не видно qt script generator bindings
«
Ответ #1 :
Ноябрь 09, 2010, 12:25 »
Ну что же если все работало, значит с новыми библиотеками все поломалось. Значит поломалось из-за новых библиотек.
Установите переменную окружения QT_DEBUG_PLUGINS в значение 1. И запустите из-под отладчика, чтобы промотреть stderr (всмысле DbgOutput или как он там называется). Просмотрите stderr и это мне в приниципе никогда не помогало.
Возмите класс QLibrary вот так: QLibrary library("data/script/qtscript_core.dll"), library.load(), qDebug() << library.errorString(). И это мне помогало почти всегда.
Динамические библиотеки с суффиксом d, как в вашем случае обычно соединяются с библиотеками такого же суффикса. Проверьте наличие QtCored.dll в папке с Qt Framework.
А вообще плагины нужно компилировать в release mode. Те в папке qtscriptgenerator/qtbindings/ надо сделать make release.
Но давайте продолжим дальше наши размышления. Я, желая Вам успеха и процветания, не рекомендую использовать qt script bindings generator, и вообще Qt Script и тем более QtDeclarative. Почему? Да потому что данные обертки - это куча новых классов, куча новых вызовов функций и соответсвенно куча последующих ошибок. В частности из-за несовпадения концепций наследования в cpp и ecma script. В первом...эм инкапсуляция что-ли, а во втором прототипность. Qt script generator не умеет генерировать прототипы. Из-за этого наследования cpp из ecma script приводит к перерасходу памяти. Ну и к логическим ошибкам тоже приводит.
На мой взгляд необходимо использовать PythonQt - эдакая замена QtScript. Интересна, но не столь проста в освоении. Пайтон гораздо более ближе к cpp, чем ecma script. А если поразмышлять еще дальше, то лучше сразу использовать pyside. Однако для этого потребуется более компьютерных мощностей.
Вообщем и целом, скомпилируйте плагины в release mode, и именно для Qt 4.7 release.
Записан
SABROG
Гость
Re: Не видно qt script generator bindings
«
Ответ #2 :
Ноябрь 09, 2010, 12:31 »
Цитата: Филоненко Михаил от Ноябрь 09, 2010, 12:25
Из-за этого наследования cpp из ecma script приводит к перерасходу памяти.
Цитата: Филоненко Михаил от Ноябрь 09, 2010, 12:25
А если поразмышлять еще дальше, то лучше сразу использовать pyside. Однако для этого потребуется более компьютерных мощностей.
Либо расход памяти, либо тормоза. Первое имхо лучше (хотя и не исключает второго)
Записан
Andrew12
Гость
Re: Не видно qt script generator bindings
«
Ответ #3 :
Ноябрь 10, 2010, 01:02 »
Вот как говорят: век живи, век учись, все равно дураком помрешь!
Похоже make release решает эту проблемму полностью. Пошел читать чем отличается release от debug mode! Всем спасибо.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...