LINUX.ORG.RU

[HTTP][!HTML][Qt] А что если...

 ,


0

0

... заменить HTML на XML, а визуализацию на qt-виджеты?
Грубо говоря, написать браузер, но такой, который вместо html-быдлокода требовал ты валидный xml от qt-дизайнера?
По функционалу QtGUI позволяет сделать все фичи что делают через JS и HTML, но через qt оно проще, легче и быстрее.
По сложности написания - фигня. Накидать GUI на Qt проще чем на html. Другая проблема что нужно будет сделать специальный qt-дизайнер(или допилить этот, или добавить виджетов) для некоторых задач, что в вебе есть а в кути обычными виджетами сделать не очень просто.
Фактически, получится что можно использовать любой веб-фреймворк и движок темплейтов для написания кода для браузера. Т.е. на стороне сервера изменений нет, а вот клиент - да, очень преобразится.
К чему это я. Да к тому что надоели все эти войны о WPF, Сильверлайт/Мунлайт, Моно, HTML5, JS, Java.
Ведь фактически Сильвер/Мунлайт является реализацией такой мысли, только реализацией людей, которые узко мыслят.
Что думаете?


Ответ на: комментарий от wfrr

Да, мы тут уже ушли от XML, больше теперь по нраву QML.

tia
() автор топика
Ответ на: комментарий от Deleted

Есть какой-нибудь линк? Или я просто не пойму что имеется в виду.

http://qt.nokia.com/doc/qml-snapshot/anchor-layout.html

Следовательно, нужно договориться о разработки QML-фронтэнда для фейсбука, но как работать с этим если нет даже браузера?

Я бы на твоем месте начал делать вполне обычный браузер, но с гуем на qml и развитой плагинной системой аля файрфокс. Но при этом он просто должен уметь есть qml файлы, которые увидит в вебе.

Gorthauer ★★★★★
()
Ответ на: комментарий от tia

Хм… стоит попробовать, ежели руки дойдут раньше, чем оно придёт в тестинг (вероятно, с кедами).

Deleted
()
Ответ на: комментарий от Gorthauer

>http://qt.nokia.com/doc/qml-snapshot/anchor-layout.html
Блин, а круто ведь.

делать вполне обычный браузер

Хочу, но:
1) C++. А я не хочу его юзать, но нет пути. С другой стороны это же Qt, по сему не так страшно.
2) Одному писать что-то большее чем helloworld... Думаю тебе знакомо, работа если и идёт то вяло.

tia
() автор топика
Ответ на: комментарий от Gorthauer

>Anchor-based Layout

horizontalCenter, verticalCenter


В своё время мне этого очень нехватало… Идея хорошая таки. Хотя если они всё же реализуют в CSS вычисления выражений, то это можно будет сэмулировать (хотя напрямую было бы удобнее, конечно).

Deleted
()
Ответ на: комментарий от Deleted

Как говорится, зачем жевать кактус и ждать пока завезут на склад ароматизаторы для него если рядом есть поваренная книга с рецептом приготовления стейка?

tia
() автор топика
Ответ на: комментарий от tia

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

Кстати, в QML есть еще волшебная штука border-image, всем кактусоедам, которые разрезают картинки и впихивают их через злые cssки или вообще таблицы придется сделать вдоль.

Gorthauer ★★★★★
()
Ответ на: комментарий от Gorthauer

Да плагинная система не проблема. Думаю использовать PythonQt или что-нить иное для пайтона(буст не хотет). Более того думаю написать некоторую Qt4.6-зависимую часть на плюсах в виде модуля для Python, а остальное на PySide/PyQT.

tia
() автор топика
Ответ на: комментарий от tia

Ну тут я не помошник, ибо на чистом С++ кодю, да и я бы всё ядро сделал бы на голых плюсах, а плагины пусть на QML+Javascript делают

Gorthauer ★★★★★
()
Ответ на: комментарий от tia

Когда начнёте проект - сделайте какой-нибудь анонс со ссылкой на него.
Помогу, как минимум, тестированием.
Может по такому случаю таки решусь осилить программинг, ибо звучит всё это очень интересно.

CyberTribe ★★
()
Ответ на: комментарий от Gorthauer

Вообще да, интересно что QML использует JS. Т.е. у него везде(в т.ч. и в «onTextChanged: rect.height = calculateMyHeight();», например) исопльзуется JS? Интересно. Какой движок там юзается? Они что-то своё писали? На сколько оно шустро? Или JS это вроде фронтэнда к Qt?
А так и правда, видимо нет смысла прикручивать пайтон.

tia
() автор топика
Ответ на: комментарий от CyberTribe

Были бы силы на разработку... Не то чтобы на допил самого QML. А ведь помимо самого браузера нужно и тулкит пилить, и виджеты и... В общем, иного чего.

tia
() автор топика
Ответ на: комментарий от tia

Главное начать, хотя бы с просто браузера на QML с возможностью отображать на html код с сайта а qml код. Ну и демо-странички с этим qml.

CyberTribe ★★
()
Ответ на: комментарий от Deleted

Не важно откуда пришла, важно во что превратилась и превратилась ли.

Главное начать, хотя бы с просто браузера на QML с возможностью отображать на html код с сайта а qml код. Ну и демо-странички с этим qml.

Видимо, сейчас этим займусь.

Кстати, что есть по сути QML? Это и есть «Qt Declarative»? Т.е. это так его называют? А сам он является частью Kinetic? Просто даже на тролльлабс информации не много.

tia
() автор топика
Ответ на: комментарий от tia

>Не важно откуда пришла, важно во что превратилась и превратилась ли.

В каком смысле не важно? Новые браузеры её умеют. IE не считается, конечно. Я всего лишь о том, что это не какая-то эксклюзивная фича QML, которой нигде больше нет.

Deleted
()
Ответ на: комментарий от Deleted

А мы здесь такого и не говорим особо :) Утверждение выше говорило о том что оно есть в кутях и работает хорошо, не более :)

tia
() автор топика
Ответ на: комментарий от impfp

Как понял, ты просто нашёл где можно кинуть «мем»?
Не совсем. Веб, а точнее его HTTP-составляющая, останется, изменится только язык разметки на более простой, удобный, быстрый и фичастый. Т.е. всего то фейсбуку нужно будет сделать index.qml и в нём написать qml-код для самого фейсбука и всё будет работать.

tia
() автор топика
Ответ на: комментарий от tia

> Как понял, ты просто нашёл где можно кинуть «мем»?

Я тут обнаружил, что кроме новостей толков и девелопмента еще есть (решил поискать подфорум, где можно было бы спросить, почему темы, кроме black, на лоре такие уебищные) и «веб девеолпмент» Удивился, окуел, и зашел посмотреть :) А тут - такие питательные размышления :)

Веб, а точнее его HTTP-составляющая, останется, изменится только язык разметки на более простой, удобный, быстрый и фичастый.

А в гугле - «qml - новый язык» «qml - новый подход» etc etc deja vu :) xhtml xaml mxml wml... список разметок за историю человечества, кстати, довольно длинный, однако живых - единицы. Что бы это могло значить?

impfp
()
Ответ на: комментарий от impfp

Дабы предупредить юношеский задор и/или надутые губки - спешу отметить, что если вдруг qml «выстрелит» это будет совсем не плохо. Как-никак, еще одна разметка, хорошая и разная.

impfp
()
Ответ на: комментарий от tia

ообще да, интересно что QML использует JS. Т.е. у него везде(в т.ч. и в «onTextChanged: rect.height = calculateMyHeight();», например) исопльзуется JS? Интересно. Какой движок там юзается? Они что-то своё писали? На сколько оно шустро? Или JS это вроде фронтэнда к Qt?

А так и правда, видимо нет смысла прикручивать пайтон.

Да, там полностью полноценный javascript, причем даже с поддержкой xhttprequest'а. Движок используется вебкитовский со всеми его оптимизациями и возможностями.

Gorthauer ★★★★★
()
Ответ на: комментарий от impfp

>Я тут обнаружил
Блин, а мы так долго скрывали этот раздел от троллей...

Что бы это могло значить?

Наверно, то что *ml эволюционируют. Ты так не думаешь? Или ты до сих пор жаришь куски свинины на костре, а живёшь в пещере? И ты считаешь что это верно?

Дабы предупредить

Ты такой смешной :)

Как-никак, еще одна разметка, хорошая и разная.

Скорее новый виток в развитии веба, я бы назвал его так.

tia
() автор топика
Ответ на: комментарий от Gorthauer

Просто супер. Только вот нужно будет подумать о безопасности, а то напишут код с xhttprequest, который загружает на hdd клиента мегафайл с проном...

tia
() автор топика

Смотрю тут от идеи XSLT преобразования UI->XHTML успешно отказались. Возможно и правильно. Я как любитель XML и JS тоже за это както пытался браться за это занятие, но прикинув количество всего в Qt и предположив как это всё будет потом тормозить с криками «нах! нах!...» это дело закопал. Аналогично с XUL хоть там и гораздо проще. Я за такое один не возьмусь. Если найдётся хотябы десяток желающих, то можно организовать такой проект, иначе нет смысла.

Идея тут в том что эти технологии надо опопсить. Сначала для опопсения можно цеплять XSLT. Потом начнут появлятся плагины к браузерам которые эти XSLT исполняют без особого приглашения, а за этим следуют нативные реализации. Как вам этот ХИТРЫЙ ПЛАН?

Кстате QML на JS тоже должен нормально парсится.

SV0L0CH
()
Ответ на: комментарий от SV0L0CH

Qt тормозить? Уж Qt точно будет работать быстрее того добра что существует сейчас.
XSLT? Зачем? Я может что-то не понимаю, но он нам не нужен. XML даже не нужен. QML вообще и близко к XML не стоит.
Видимо, чтобы не было путаниц, нужно создать новый тред.

tia
() автор топика
Ответ на: комментарий от tia

>Дык QtDesigner нам не нужен. Он не умеет генерить QML(вроде).

В Нокии вроде сообщалось что умеет... хотя не проверял, не хочу пока тестовую ветку ставить. Да и забил я на Qt в последнее время.

SV0L0CH
()
Ответ на: комментарий от tia

В креаторе есть рисовалка QML, она мне чем то старый макромедия флеш напомнила. Вообще конечно можно для начала сделать в браузерах эмулятор QMLя при помощи Canvas'а но это муторно и тормозить будет наверняка

Gorthauer ★★★★★
()
Ответ на: комментарий от Gorthauer

Оно не нужно. Лично я для себя решил что QML-Браузер должен быть направлен только на использование QML-страниц и не более.
Кстати, как с тобой можно связаться? Я чую что из-за того, что я не кодил на C++ уже почти пол-года, придётся много вопросов задавать, а некому ._. Не на лоре же тысячи вопросов задавать.

tia
() автор топика
Ответ на: комментарий от tia

Дабы предупредить

Блин, а мы так долго скрывали этот раздел от троллей...

Ты такой смешной :)

Все-таки, не зря предупреждал ;-)

Что бы это могло значить?

Наверно, то что *ml эволюционируют. Ты так не думаешь?

Как тебе сказать...

import Qt 4.6

Rectangle {
    id: container
    property string label
    signal clicked
    radius: 5; border.color: "black"
    color: mouse.pressed ? "steelblue" : "lightsteelblue"
    gradient: Gradient {
            GradientStop { position: mouse.pressed ? 1.0 : 0.0; color: "steelblue" }
            GradientStop { position: mouse.pressed ? 0.0 : 1.0; color: "lightsteelblue" }
    }
    MouseRegion { id: mouse; anchors.fill: parent; onClicked: container.clicked() }
    Text { anchors.fill: parent; text: container.label; anchors.centerIn: parent }
}

It smells like Delphi... 4? 5?

impfp
()
Ответ на: комментарий от impfp

Мне кажется либо делфи 4 отказался от паскаля и перешёл на json-like синтаксис, либо ты не видел делфи, либо тебе делать нефиг :)

tia
() автор топика
Ответ на: комментарий от tia

>Мне кажется либо делфи 4 отказался от паскаля и перешёл на json-like синтаксис

<telepaty>товарищю похоже вспомнился синтаксис *.rc файлов</telepaty>

SV0L0CH
()
Ответ на: комментарий от tia

Мне кажется

Перекрестись ;)

товарищю похоже вспомнился синтаксис *.rc файлов

С той разницей, что в ту золотую пору файлы имели расширение .dfm :) И, (вспомнил) начиная с 5й версии, представлялись в виде текста, по букве и духу похожего на вышеприведенный пример QML-разметки.

Но, имхо, за десяток лет (после дельфей, а с основания (1994) - все 16 годков) этого как-то мало, да и не ново (смотрим в XAML и MXML, как прямых, и состоявшихся конкурентов, которые появились даже раньше чем QML, не?).

Если смотреть ширше и ширее, то можно увидеть, что развитие способов описания данных (все эти json, mxml и тд и тп) идет в сторону лиспа (код=данные), которому далеко за 40. ...Или мне тоже пора перекреститься? :)

impfp
()
Ответ на: комментарий от impfp

>Или мне тоже пора перекреститься? :)

Не в коем случае, очень плохая привычка в последствии может развится ПГМ, что чревато :)

Если смотреть ширше и ширее, то можно увидеть, что развитие способов описания данных (все эти json, mxml и тд и тп) идет в сторону лиспа (код=данные)

Дерево оно и в лиспе дерево, а способ разметки дерева второстепенная задача. Тут кому что нравится, разметка подбирается под структуру дерева и с учётом ньюансов.

Собствнно в QML мне не нравится то что он не являектся XML/JSON/CSS/etc в отличи от UI(Qt)/XUL(про MXML и XAML не знаю), тоесть для работы с ним надо будет городить костыль вместо использования стандартных средств. А в остальном дерево как дерево.

SV0L0CH
()
Ответ на: комментарий от SV0L0CH

И че? Открыли блин Америку, в qml весьма классический синтаксис, и весьма удобный, в отличии от XAML. Там не в синтаксисе же все плюшки.

Gorthauer ★★★★★
()
Ответ на: комментарий от Gorthauer

> Кстати, в QML есть еще волшебная штука border-image, всем кактусоедам, которые разрезают картинки и впихивают их через злые cssки или вообще таблицы придется сделать вдоль.

Welcome to HTML5, Neo! Фактически все теже нарезки, только склеенные в тайлы. Правда, если я сейчас все уголки могу склеить в 1 PNG-файл, то потом мне нужно будет делать отдельную картинку для каждого элемента с бордюром.

simple_best_world_web_master
()

В одном из своих прошлых тредов про поиски хорошего фреймворка, я рисовал красивую майндмапу, где в качестве транспорта/средства отображения веб-браузер рассматривался как один из вариантов, не самый главный. После чего tia предложил мне выучить основы html+http+www вообще. Но не прошло и года, как уважаемый tia подхватил мою идею, и делает новый, лучший мир www без html, а через неделю-месяц-год осознает, что и http несколько устарел. Спасибо тебе tia, что развиваешь мою идею!

По сабжу: читать историю развития Flash, читать про Flex, читать (главное!) про XForms, дабы не изобретать аяксы и httpxmlrequestы.

До кучи можно напридумывать разных крутых виджетов и тегов, вроде <chess>e2-e4</chess>, для отображения шахматной доски и анимации е2-е4. Ах да, это же уже реализовали в Google Wave, какая незадача...

simple_best_world_web_master
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.