Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: savva-paladin от Декабрь 11, 2010, 14:29



Название: GUI Ya.Online
Отправлено: savva-paladin от Декабрь 11, 2010, 14:29
Здравствуйте! Не поможете ли мне разобраться( Я ещё новичёк ) как сделан интерфейс Я.Онлайна ( сделан 100% на Qt, я узнавал).
http://savva-paladin.narod.ru/11.12.jpg (http://savva-paladin.narod.ru/11.12.jpg)


Название: Re: GUI Ya.Online
Отправлено: alexman от Декабрь 11, 2010, 14:56
Код открыт?


Название: Re: GUI Ya.Online
Отправлено: savva-paladin от Декабрь 11, 2010, 14:57
Код открыт?

Только программная часть мессенджера, интерфейс закрыт.


Название: Re: GUI Ya.Online
Отправлено: ufna от Декабрь 11, 2010, 16:42
Я сомневаюсь что это Qt (посмотрел изнутри - ни намека не нашел)

А вообще - здесь было бы неплохо изучить в целом как делается гуи, что такое Qt. А то даже не знаю с чего начать. Грубо говоря - берешь да рисуешь что нужно, да события правильно обрабатываешь :)


Название: Re: GUI Ya.Online
Отправлено: ufna от Декабрь 11, 2010, 16:48
Да, и можно, пожалуйста, либо уменьшать разрешение, либо делать ссылками, а то конкретно затрудняет чтение главной страницы :)


Название: Re: GUI Ya.Online
Отправлено: tim474 от Декабрь 11, 2010, 19:37
А зачем перерисовывать стандартные элементы управления, предоставляемые операционной системой? Вообще для этого гугли, как скрыть заголовок окна (title bar), это через WindowFlags как-то делается, а потом надо рисовать свои кнопочки. Только если ты новичок, не советую сразу за это браться, т.к. смысла не вижу.


Название: Re: GUI Ya.Online
Отправлено: kibsoft от Декабрь 11, 2010, 20:53
Qt Style Sheets смотри:
http://doc.trolltech.com/4.7/stylesheet.html


Название: Re: GUI Ya.Online
Отправлено: savva-paladin от Декабрь 12, 2010, 02:40
Это Qt 100%, я у руководителя проекта разработки Я.Онлайна спрашивал.

Про WindowFlags Я тоже вкурсе, Возникает вопрос про скругление углов QMainWindow и добавление тени


Название: Re: GUI Ya.Online
Отправлено: ecspertiza от Декабрь 12, 2010, 12:20
ну или смотри в сторону QML, на нем не так сложно будет сделать такой интерфейс  :) А можно и просто Qt Style обойтись


Название: Re: GUI Ya.Online
Отправлено: kibsoft от Декабрь 12, 2010, 16:53
Цитировать
Возникает вопрос про скругление углов QMainWindow и добавление тени
Вы форум только для вопросов используете? Ответы не читаем? Выше было написано, с помощью чего можно сделать такие интерфейсы.

Цитировать
Qt Style Sheets смотри:
http://doc.trolltech.com/4.7/stylesheet.html


Название: Re: GUI Ya.Online
Отправлено: ernie от Декабрь 12, 2010, 18:48
можно так же в paintEvent'e окна отрисовывать всё как надо,если с qml проблемы=)


Название: Re: GUI Ya.Online
Отправлено: ufna от Декабрь 12, 2010, 19:16
У QML главная проблема - это уродские торможения при ресайзе окна. Для мессенджера это фтопку однозначно, т.к. он сразу летит в корзину.

QSS имхо - только для некоторой кастомизации основного стиля, точнее не кастомизации - а работа в привычных контролаз, но со сменой вида. Есть минусы в виде тормозов.

Самый правильный имхо вариант - для подобных заголовкой, выдвигающися и мигающи меню - это собственный paintEvent. Это работает быстро, четко и надежно.


Название: Re: GUI Ya.Online
Отправлено: SABROG от Декабрь 13, 2010, 11:48
У QML главная проблема - это уродские торможения при ресайзе окна. Для мессенджера это фтопку однозначно, т.к. он сразу летит в корзину.
Как я понял проблемы с тормозами признан решить Scene Graph (http://labs.qt.nokia.com/2010/05/18/a-qt-scenegraph), только он еще официально не вышел.

Вообще, если интерфейс Я.Онлайн сделал действительно через переопределение paintEvent, то сделано очень много работы, т.к. даже стандартные контролы скорее всего были заменены на аналоги своих (те же кнопки, scrollbar и панель для смайлов). Имхо тут не одна неделя/месяц работы.


Название: Re: GUI Ya.Online
Отправлено: ufna от Декабрь 13, 2010, 15:43
Как я понял проблемы с тормозами признан решить Scene Graph (http://labs.qt.nokia.com/2010/05/18/a-qt-scenegraph), только он еще официально не вышел.

SceneGraph, насколько понимаю, под OpenGL 2? Это печально :(


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 13, 2010, 17:10
Я.онлайн сделан на базе psi.
исходники они открывали. Используется jabber протокол, чего там закрытого?


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 13, 2010, 17:13
Цитата: ufna
SceneGraph, насколько понимаю, под OpenGL 2? Это печально :(

Да, они на labs писали недавно, иначе они не смогут сделать плавность анимации.
В общем теперь пошёл раскол Qt и Qml, нокии судя по всему нужна последняя.


Название: Re: GUI Ya.Online
Отправлено: ufna от Декабрь 13, 2010, 17:18
Мда, не айс. Огромный плюс Qt в том, что графика может быть быстрой и не зависеть от OpenGL, а тут..


Название: Re: GUI Ya.Online
Отправлено: Sancho_s_rancho от Декабрь 13, 2010, 17:25
Цитата: ufna
SceneGraph, насколько понимаю, под OpenGL 2? Это печально :(

Да, они на labs писали недавно, иначе они не смогут сделать плавность анимации.
В общем теперь пошёл раскол Qt и Qml, нокии судя по всему нужна последняя.
Мне только один момент непонятен: как на QML писать программы? Т.е. там стандартных "виджетов" нет. Ежели для игрушек это приемлемо, там чем чуднее элементы управления - тем круче. То для написания программ с использованием qml необходимо изобретать велосипед.  Т.е. в телефоне будет пестрый зоопарк из наколенных элементов управления. На данный момент мне как-то понятней использовать QGraphicsView и обычные виджеты Qt.


Название: Re: GUI Ya.Online
Отправлено: Пантер от Декабрь 13, 2010, 17:32
Nokia планирует создать коллекцию примитивов на QML.


Название: Re: GUI Ya.Online
Отправлено: Авварон от Декабрь 13, 2010, 18:07
Пантер
Как ты много на конфе почерпнул:) Я погуглил, нашел репо - че-то там нихрена нету.


Название: Re: GUI Ya.Online
Отправлено: SABROG от Декабрь 13, 2010, 18:10
Пантер
Как ты много на конфе почерпнул:) Я погуглил, нашел репо - че-то там нихрена нету.
Плохо видать гуглил :) Вот (http://bugreports.qt.nokia.com/browse/QTCOMPONENTS)


Название: Re: GUI Ya.Online
Отправлено: Пантер от Декабрь 13, 2010, 18:11
Но говорили же такое. Значит пока еще в планах это.


Название: Re: GUI Ya.Online
Отправлено: ecspertiza от Декабрь 14, 2010, 00:22
Мне только один момент непонятен: как на QML писать программы? Т.е. там стандартных "виджетов" нет. Ежели для игрушек это приемлемо, там чем чуднее элементы управления - тем круче. То для написания программ с использованием qml необходимо изобретать велосипед.  Т.е. в телефоне будет пестрый зоопарк из наколенных элементов управления. На данный момент мне как-то понятней использовать QGraphicsView и обычные виджеты Qt.

А QML наверное и не предназначен для стандартных интерфейсов ибо незачем, там есть несколько стандартных виджетов типа ListView или WebView, но кнопочки придется рисовать самому. Хотя опять же нарисовал кнопочку задал все необходимые сигналы, и подключай ее потом как обычный виджет :)


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 14, 2010, 11:44
Nokia планирует создать коллекцию примитивов на QML.

Планирует, то планирует, а время то идёт, iOS и Android не стоят на месте, а там кстати стандартные элементы управления, Nokia в общем опять решила избрать "особый путь".
Про Qml они на всех своих выступлениях говорили, что это для мобилок.
Примитивы если и сделают, то это займёт какое-то время, и скорее всего не будут стили поддерживать. В общем Qml это велосипедостроение на стероидах.
Nokia в принципе не важно десктопное направление. Видимо мы наблюдаем закат Qt.  :'(


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 14, 2010, 11:45
Мне только один момент непонятен: как на QML писать программы?
...

Да, всё плохо. Nokia будет двигать Qml.
Учите gtkmm. :)


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 14, 2010, 11:47
Плохо то, что Qml это изобретение Nokia никак не стандартизировано, почему-то вспоминается Delphi.


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 14, 2010, 11:48
Мда, не айс. Огромный плюс Qt в том, что графика может быть быстрой и не зависеть от OpenGL, а тут..

Именно, переопределил paintEvent и твори...
А тут уже непонятно что начинается. наработки из SceneGraph в Qt не будут портироваться. Т.к. архитектура другая.


Название: Re: GUI Ya.Online
Отправлено: SABROG от Декабрь 14, 2010, 12:13
и скорее всего не будут стили поддерживать. В общем Qml это велосипедостроение на стероидах.
Nokia в принципе не важно десктопное направление. Видимо мы наблюдаем закат Qt.  :'(

Для QML планируется Theme API (http://bugreports.qt.nokia.com/browse/QTCOMPONENTS-4) (приоритет Critical)

Про Qml они на всех своих выступлениях говорили, что это для мобилок.
Игры написанные на QML, скорее всего, будут одинаково смотреться и на десктопах. Бизнес-программы писать на нем будут врятли. Возможное применение в бизнесе я вижу для вывода презентаций, графики.

Nokia в принципе не важно десктопное направление. Видимо мы наблюдаем закат Qt.
После покупки Qt Нокией и так было понятно, что приоритеты сдвинутся и основные силы будут брошены на портирование библиотеки под мобилы.

наработки из SceneGraph в Qt не будут портироваться. Т.к. архитектура другая.
Портироваться куда, на десктопы или встроенные системы? На десктопах SceneGraph уже работает - Qt Autotester (http://labs.qt.nokia.com/2010/10/29/making-auto-testing-easier). Ну и собственно вот SceneGraph на N900 (http://labs.qt.nokia.com/2010/05/18/a-qt-scenegraph/)

Насчет замены QGraphicsView SceneGraph'ом Gunnar Sletta сказал:

Цитировать
What I’m trying to say is that the scene graph will not replace QGraphicsView as a C++ API. It might replace QGraphicsView as a backend for QML though, and we will have a good migration path for that.

Mnaydenov, you ask if you should use QML instead of QGraphicsView. For somewhat fancy UI, I would definitely use QML because I feel it is far more productive and generally has very good performance.


Название: Re: GUI Ya.Online
Отправлено: Sergey B. от Декабрь 14, 2010, 13:25
Портироваться куда, на десктопы или встроенные системы? На десктопах SceneGraph уже работает - Qt Autotester (http://labs.qt.nokia.com/2010/10/29/making-auto-testing-easier). Ну и собственно вот SceneGraph на N900 (http://labs.qt.nokia.com/2010/05/18/a-qt-scenegraph/)

Я имел ввиду его фичи в Qt могут не затянуть.
т.е. он будет работать только с qml.
The result is that we are always progressing the animation in sync with the vertical refresh, so once every 16.66 ms, and exactly once pr frame. I said that I was initially not convinced that missing the occational frame was that bad, but it took me ONE look at the result and I realized we finally had it. Velvet!

We cannot do this generally in Qt because the method we have for vertical synchronization is only through OpenGL’s swapBuffers(), so we can only tie it to one window. With Wayland or through custom OpenGL extensions, we can potentially get the vertical synchronization without going through swap, which means we could in theory advance animations across multiple windows, but that is out of scope for me right now. For now, it is fixed for that single window running the QML Scene Graph.