perl Qt4 test /QtCore/

Модератор: Модераторы разделов

vadiml
Сообщения: 446
ОС: fc12.x86_64

perl Qt4 test /QtCore/

Сообщение vadiml »

сейчас пишется perl Qt4, заработал первый модуль QtCore, после добавления QtGui и тестирования будет выложено на CPAN.
При написании приследовались цели:
- сделать максимально похожим на С++ Qt4, чтоб было легко пользоваться оригинальной документацией
- как можно более полно использовать возможности перла, например, вместо QVector, QList используются массивы перла
- транслятор с C++ на Perl должен быть более-менее простым, чтоб его было легко сопровождать (за монстра, который используется в perl/Qt3 страшно браться :) , здесь только 1 парсер, который на основе заголовочных файлов создает XS файлы)

пока есть несколько общих вопросов к заинтересованным:

* сейчас *.pm устанавливаются по каталогам в зависимости от библиотеки, т.е. все pm для QtCore -- в lib/QtCore, для QtGui -- в lib/QtGui, и т.д. и в скрипте модули вызываются как
use QtCore::QString;
use QtCore::QFile;
Стоит ли их так раскладывать или лучше что бы всё устанавливалось в каталог Qt или вообще не использовать каталог, т.е. устанавливать в lib.

* в Qt очень много завязано на QString. Стоит ли использовать его как он есть или по возможности заменить на строки перла, т.е. обычные переменные, а всю трансляцию производить в XS-файлах.

* в классах довольно часто используются operator= , operator[], operator~ и другие неперегружаемые/нестандартные для перла операторы.
Какие для них прописать функции, т.к. для них перегрузить нечего

всё писалось с использованием Qt4.2.3, но более новые версии должны работать, разве что не будет видно какого-либо нового файла.
для желающих посмотреть:
просто архив -- http://www.klv.lg.ua/~vadim/perlQt4/QtCore-4.000.tar.bz2
src.rpm для федоры & Co -- http://www.klv.lg.ua/~vadim/perlQt4/perl-Q...00-0.fc.src.rpm
в архиве лежат пара небольших примеров рабочего кода.

для установки нужны заголовочные файлы Qt4
перед установкой надо в Makefile.PL прописать в переменной $prefix расположение каталога include c заголовочными файлами Qt (сейчас там /usr), при самой установке на экран выводятся неотранслированные функции и typedef'ы -- на них можно не обращать внимания (они отложены на потом)

в планах -- обеспечить работу под windows (ActivePerl), мака у меня нет (хотя и win сейчас тоже, но её доставить можно освободив место от фильмов :) ).

остались не решенными вопросы, если кто может помочь:
- как из Перла считать prefix для автоматического определения расположения заголовочных файлов Qt4 (у меня QTINC=/usr/lib/qt-3.3/include)
- как в TYPEMAP прописать std::string и wchar_t
- как транслировать переменные, определенные например как typedef bool (*f_null)(const Private *);
- как использовать lvalue из С, например функцию int &fn(); которую можно использовать как Класс.fn()+5
- как использовать sprintf, который принимает список переменной длины или va_list
- как в перле использовать шаблонные классы, (это для меня самая большая проблема), поэтому установлен #define QT_NO_MEMBER_TEMPLATES
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

в планах -- обеспечить работу под windows (ActivePerl), мака у меня нет (хотя и win сейчас тоже, но её доставить можно освободив место от фильмов :) ).

В этом нет никакой необходимости. Венде все равно скоро капец.
для желающих посмотреть:
просто архив -- http://www.klv.lg.ua/~vadim/perlQt4/QtCore-4.000.tar.bz2

Битый линк :(
Спасибо сказали:
Аватара пользователя
nrg
Сообщения: 219
Статус: Энерджайзер :)
ОС: OpenSuSe 10.3

Re: perl Qt4 test /QtCore/

Сообщение nrg »

Обалдеть.... ребят, если все получится в адекватном виде, то с меня честный ящик пива! Давно мечтаю о Перл Qt4 биндинге :)
OpenSuSe 10.3 на Dell Inspiron 1501 и Семпрон-3000/1024ДДР2-800/120+60+300/NVidia 8500GT.
Участник Sun Open Source User Group, Самара.
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Баг

Код: Выделить всё

root@ipse:~/devel/perl/QtCore-4.000# perl Makefile.PL -i /usr/lib/qt4/include -qg /root/devel/perl/QtGui-4.000 -qc /root/devel/perl/QtCore-4.000
/root/devel/perl/QtCore-4.000
=====================================================================
found: 4 3 0
found Qt ver = 4 3
== QGlobal ==
??? td: 'typedef QIntForType<void *>::Type qptrdiff;'
 = QSysInfo =
  enum ??? 'enum Sizes { WordSize = (sizeof(void *)<<3) };'
 = QBool =
???? 'operator void *()'
???? '{ return b ? static_cast<void *>(this) : static_cast<void *>(0); }'
 = QFlag =
??? td: 'typedef void **Zero;'
??? td: 'typedef Enum enum_type;'
== QPoint ==
 = QPoint =
 = QPointF =
== QLine ==
 = QLine =
 = QLineF =
== QSize ==
 = QSize =
 = QSizeF =
== QRect ==
 = QRect =
 = QRectF =
== QMutex ==
 = QMutex =
 = QMutexLocker =
== QWaitCondition ==
 = QWaitCondition =
== QReadWriteLock ==
 = QReadWriteLock =
 = QReadLocker =
 = QWriteLocker =
== QSemaphore ==
 = QSemaphore =
== QBasicTimer ==
 = QBasicTimer =
== QChar ==
 = QLatin1Char =
 = QChar =
== QByteArray ==
 = QByteArray =
??? td: 'typedef Data * DataPtr;'
 = QByteRef =
== QBitArray ==
 = QBitArray =
??? td: 'typedef QByteArray::DataPtr DataPtr;'
!!! unknown output type 'DataPtr'
 = QBitRef =
== QString ==
 = QString =
???? ';'
??? td: 'typedef Data * DataPtr;'
 = QLatin1String =
 = QCharRef =
 = QStringRef =
Can not parce create_xs:
 Unmatched ) in regex; marked by <-- HERE in m/0) <-- HERE / at create_xs line 1204, <FH> line 1057.
Спасибо сказали:
Аватара пользователя
inline
Сообщения: 72
ОС: Gentoo

Re: perl Qt4 test /QtCore/

Сообщение inline »

А видели ли Вы это: http://perlqt.sourceforge.net/? Правда, там последняя версия для Qt 3.0, однако, может быть можно использовать код отсюда?
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Все это видели
Спасибо сказали:
Аватара пользователя
nrg
Сообщения: 219
Статус: Энерджайзер :)
ОС: OpenSuSe 10.3

Re: perl Qt4 test /QtCore/

Сообщение nrg »

inline писал(а):
06.01.2008 19:39
А видели ли Вы это: http://perlqt.sourceforge.net/? Правда, там последняя версия для Qt 3.0, однако, может быть можно использовать код отсюда?

Куте3 и 4 как небо и земля, суть-разные вещи во многих отношениях.
OpenSuSe 10.3 на Dell Inspiron 1501 и Семпрон-3000/1024ДДР2-800/120+60+300/NVidia 8500GT.
Участник Sun Open Source User Group, Самара.
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

А видели ли Вы это: http://perlqt.sourceforge.net/?

Видели, потому и решил не трогать этого монстра и написать по-проще

осталось только доделать вызов виртуальных функций из С++ кода в перл, после чего выложу на cpan
пока только -- http://www.qt-apps.org/content/show.php/Pe...4?content=69748


ояб
В этом нет никакой необходимости. Венде все равно скоро капец

Может Вам и нет. А мне надо чтоб программа работала в обоих системах
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Что-то я не вижу уже модуля на твоем сайте.
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Все, капец? Энтузиазм у автора исчерпан?
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

ояб
что именно Вас интересует?
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

В первую очередь интересует когда модуль появится в цпане.
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

когда подтвердят
а пока только по вышеприведенной ссылке или http://cpan.org/modules/by-authors/id/V/VA/VADIML/
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Видимо подтвердили сегодня :) http://search.cpan.org/~vadiml/QtCore-4.000/
И сразу баг при установке.

Код: Выделить всё

grep: /usr/include/QtCore/qglobal.h: Нет такого файла или каталога

Ставил стандартно

Код: Выделить всё

perl -MCPAN -e 'install QtCore'
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

А вы readme читать пробовали?

советую
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
ояб
Сообщения: 107
ОС: FreeBSD

Re: perl Qt4 test /QtCore/

Сообщение ояб »

Повторяю
Ставил стандартно

Код: Выделить всё

perl -MCPAN -e 'install QtCore'

Или сейчас такие модули принято писать что за каждым лазить на цпан надо и читать readme?
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

ну если Вы можете "стандартно" установить такого монстра как Qt (любой версии) ....

если б Вы соизволили заглянуть в то, что Вы так безуспешно пытаетесь поставить, то увидели бы, что это не готовый модуль к установке, а генератор кода, и результат будет зависить только от того, что стоит на вашем компьютере.
(я думал что только win кишит юзерами, которые сначала ставят программу, а потом смотрят что она натворила с системе).

в дальнейшем продолжении беседы не вижу смысла из-за её бессодержательности.
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
Nerr
Сообщения: 65

Re: perl Qt4 test /QtCore/

Сообщение Nerr »

CPAN Testers FAIL (14) NA (1)
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

zxxxc
Я выше писал, что напрямую со CPAN'a не ставится (точнее сейчас ставится только на федоре & Co, т.к. я не знаю расположения заголовочных файлов Qt4 в других дистрибутивах + результаты этих тестов появились еще для v4.00 когда возможности установки со cpan'a вообще не было).
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
Nerr
Сообщения: 65

Re: perl Qt4 test /QtCore/

Сообщение Nerr »

Да, я его даже собрал и поставил. Но он все равно фейлит.

Код: Выделить всё

blib/arch/auto/QtGui/QtGui.so: undefined symbol: _ZN19QAbstractScrollArea5eventEP6QEvent at /usr/local/lib/perl5/5.10.0/i686-linux-thread-multi/DynaLoader.pm line 203.
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: perl Qt4 test /QtCore/

Сообщение gcc »

http://www.nntp.perl.org/group/perl.cpan.t.../msg859366.html

а в браузере будут эта интерактивность?
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

zxxxc
на 5.10 я работу не проверял (у меня его пока нет), возможно что-то в экспорте поменялось

gcc
это Вы к чему?
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
Nerr
Сообщения: 65

Re: perl Qt4 test /QtCore/

Сообщение Nerr »

Ну можеть хоть подскажешь где в сорцах закомментить этот AbstractScrollArea event QEvent.
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: perl Qt4 test /QtCore/

Сообщение gcc »

а инструкция есть к этим модулям??

QT это библиотека к C/C++ и т.д.

а если я напишу на перле, что мне делать дальше компилировать или просто запускать? :blush:

zxxxc писал(а):
12.04.2008 23:11
Ну можеть хоть подскажешь где в сорцах закомментить этот AbstractScrollArea event QEvent.


плохо скомпилировал наверное
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

синтаксис очень похож на С, поэтому можно использовать документацию что идёт с Qt4 (это было одной из целей написания).
А различия лучше всего видны на примерах -- там в архиве идет несколько примеров переписанных на перле из Qt4 examples (большая часть в QtGui). Оригиналы на С++ лежат там же, чтоб их не надо было.

PS в QtGui есть ошибка в QPainter, это видно по примеру в tutorial8. Чтоб найти, надо много полазить по исходникам Qt4 в отладчике, а сейчас времени не хватает.
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: perl Qt4 test /QtCore/

Сообщение gcc »

я видел как это моделировали на QT KDE, еще не смотрел...

на perl моделировать мышкой нельзя будет...
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: perl Qt4 test /QtCore/

Сообщение vadiml »

gcc
если у меня (или кого-то ещё) дойдут руки -- то будет можно
там можно любой язык добавить.
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
gcc
Сообщения: 526
ОС: FreeBSD 8.0 CURRENT

Re: perl Qt4 test /QtCore/

Сообщение gcc »

интересно можно ли это запустить в виртуальной машине parrot? (стабильная версия вышла в этом году)
Спасибо сказали: