| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > DFM2UI |
| Автор: NuShaman 9.12.2009, 12:51 |
| Добрый день! Не нашел в инете утилиту DFM2UI, хотя кто-то упоминал, что она существует. Есть ли какие-нибудь программы по преобразованию DFM-файлов (формы в Borland Delphi 7, C++ Builder 6) в UI-файлы (XML) для Qt? |
| Автор: SABROG 9.12.2009, 14:05 |
| Никогда не слышал о такой. Если она и есть, то её функционал должно быть сильно ограничен и на выходе будет какой-нибудь гадкий утенок |
| Автор: W4FhLF 9.12.2009, 14:54 |
| В qt интерфейс принято строить на основе layout'ов, а в билдере сплошной pixel hacking. Поэтому даже если такая утилита есть конечный результат не будет вписываться в общую концепцию дизайна UI с помощью Qt. |
| Автор: SABROG 9.12.2009, 15:46 | ||
В принципе расставить кнопочки и без компановщиков можно, другое дело, что потом переделывать придется. Еще картинки (глифы) надо будет выдернуть, сконвертить в .png, создать файл ресурсов и прописать эти картинки там. И т.к. в DFM файле прописаны обработчики типа onClick, то их надо будет либо выкинуть, либо исходник генерить со слотами на подобные сигналы. Естественно, что многих аналогов сигналов Qt не будет, также как и многих параметров, которые могли бы отвечать за внешний вид виджета, за его расположение на форме. |
| Автор: W4FhLF 9.12.2009, 16:37 |
| SABROG, я стобой согласен! |
| Автор: andrew_121 9.12.2009, 18:20 |
| Так и не нужна такая тулза! |
| Автор: NuShaman 10.12.2009, 07:54 | ||
SABROG, спасибо за ответ!
Мне нужна, чтобы хотя бы частично автоматизировать перенос проекта с Builder С++ 5 в Qt 4.6.0. Я уже занялся проектом DFM2UI. Планирую так конвертить свойства geometry и text: TLabel (с надписью) -> QLabel TLabel (без надписи) -> QPushButton TLabel (без надписи) у меня используется для событий OnMouseDown и OnMouseUp, чтобы менять картинку в TImage такого же размера под TLabel, таким образом получается любая кнопка (картинки созданы в Photoshop). Тогда задам в этой же ветке вопрос. Есть ли компонент типа QPushButton с событиями clicked и released, но чтобы при его нажатии не прорисовывалась рамка как у QPushButton? |
| Автор: SABROG 10.12.2009, 10:39 |
| В Qt если хотят кликать по картинке - переопределяют mousePressEvent() у QLabel'a или ставят фильтр событий на него (installEventFilter) и ловят QEvent::MouseButtonPress. |
| Автор: sergey_85 10.12.2009, 12:17 |
| NuShaman, зачем тебе это Builder уже почти умер! Ну сконвертишь ты лейб, буттон, чекбокс, а что будешь делать с virtualtreeview и тучей прочих, зараннее неизвестных контролов? Не думаю, что данная утилита окупиться. Вряд ли в ней будет крайняя нужда, и все равно 100% конверта достичь будет трудно! Проще, на мой взгляд, открыть exe'шник написанный на c++ builder и QtDesigner и вручную все это перенести! Слишком много гемора! С уважением. |
| Автор: NuShaman 10.12.2009, 12:49 | ||
Я всё ещё разрабатываю приложения под Windows 98, и всё удовлетворяет. Дело в том, что надо переходить на линукс, как бесплатную альтернативу винды, для этого я и планирую перекладывать приложение на Кутэ (куда ещё можно?), ну и вообще устремиться к кросс-платформенности, и может даже код на C++ и формы в некоей своей своеобразной базе данных хранить, чтобы потом очень быстро адаптировать в любую среду разработки. Кстати, поставил Builder 2010 - супер, всё понравилось! К 100% конверта я совершенно не стремлюсь, у меня в приложении в основном TLabel и TImage, ну и всякие незначительные компоненты, просто хочу всю геометрию и надписи сконвертить, а там видно будет. Разумеется, сам код переносить будет сложнее всего. Думаю, сложности будут с TChart и COM-портом. С Кутэ я несколько дней только знаком, вникаю. Потом отпишусь о результатах переноса на Кутэ. Всем спасибо за ответы! |
| Автор: andrew_121 10.12.2009, 13:03 |
Мдя... Может екземплов почитать? Не думаю что в этом разделе кто-то понимает ваш восторг Помимо переноса ГУИ, вы столкнетесь еще и с переносом кода. Дело в том, что код компилируемый в билдере, не очень соответствует стандарту(это еще мягко сказано!). А g++ или Mingw, весьма педантичные компиляторы. В общем....успехов. |
| Автор: sergey_85 10.12.2009, 13:04 |
| наверно в 2010 builder'е максимальная ориентированость под .net Да я тоже двумя руками за кросс-платформенные приложения, максимум через пару лет эта тема будет очень востребована! |
| Автор: NuShaman 20.1.2010, 07:47 |
| Написал конвертилку DFM в UI. Конвертит TLabel в QLabel, потом ручками приходится дописывать, но всё равно облегчает труд. Главную форму приложения сделал, щас ставлю компилятор g++ и Qt (чо-то как-то криво ставятся, с проблемами) на Debian. хочу откомпилить в линуксе. |
| Автор: andrew_121 20.1.2010, 08:03 |
ни за что не поверю! |