LINUX.ORG.RU

QML на десктопе

 ,


0

6

Изучаю QML на примере Qt Quick Controls 2, но столкнулся с парой эпичных косяков:

  1. Ресайз окна приводит к пляскам виджетов (пример). Советуют использовать софтварный opengl, но это убивает всю идею QML.
  2. frameless window фактически нереализуем, так как при анимации пользовательские события блокируются. В итоге если у нас где-то крутится спинер - перемещать/ресайзить окно нельзя. При этом перемещать/ресайзить окно за пределы экрана тоже нельзя.

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

Сам QML мне понравился, но пока я не найду решение хотя бы для первого пункта - я его использовать не могу.

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

Это даже с Qt4 и Gtk2 плохо работает.

Толсто. Выбор темы работает нормально всегда.

Я конечно сам пользуюсь QtCurve на гентео, проблемы были только в одной версии, когда они вводили только-только делали поддержку Qt5. Но приходилось поддерживать системы и без него - никаких проблем не ощущал.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Вся проблема QML, что там всё настраивается, но никто не знает как.

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

Через пару дней смогу выложить, есть толстый проект с кастомным оформлением окна, там всё работает и не прыгает. Сам исходник выложить естественно не смогу, могу подсмотреть (этот кусок делал не я) и сделать пример.

ya-betmen ★★★★★
()
Ответ на: комментарий от Pinkbyte

Толсто.

На Hello World реально хорошо работает Qt4 + Gtk2, но блин, надо же понимать что у них разные концепции построения интерфейса, нельзя даже сделать нормальную тему gtk2 для gtk3, они разные!

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

Кстати с Maximize тоже проблемы, да. У меня иногда элементы полупрозрачными становятся.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от ya-betmen

Ок, жду. За одно напишите что за железо.

RazrFalcon ★★★★★
() автор топика

не мучай себя, давно бы уже зарелизил свои 3 кнопки на электроне.

anonymous
()

Давненько то было, но я вроде в Qt Creator создавал интерфейс, а потом его исследовал. Вообще там всё просто, просто инфы в интернете мало. Да, да, припоминаю. Можно к левому краю привязать, к центру и т.д. Гугльните QML anchors.

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

GTK ворочаются как ватное одеяло, в помойку летит не железо, а криворукие поделия - Gnome и GTK.

Зачем ты пользуешься тем что тебе не нравится?

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

Вообще, тема с растягиванием — это и есть норма.

Норма уровня /qml.

EXL ★★★★★
()

Мне он противен. Всё жутко не логично, дефолтная расстановка виджетов - каша в одном месте, дефолтный размер - 0, биндинги переменных к гую создают циклы, когда например 2 контрола показывают одну и ту же переменную. Приходится строить гуй на самых примитивных лайоутах, так как умные тормозят и не рекомендованы к использованию. Короче идея хороша, а реализация подкачала. Даже на фоне остального qt-говна смотрится, как фейл.

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

Было бы круто, если бы декларативщина была на движке QtWidgets и без всяких JavaScript’ов формочки на QML или на подобном ему декларативном DSL транслировались прямо в C++, как это делается с UI-формами, которые есть суть XML, вот только его ручками нормально не поредактируешь.

Но вместо этого туда впилили почти аналог Electron’а.

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

Можно попробовать tornadofx на котлине как альтернативу QML. Ну еще в gtk была попытка объединения разметки с логикой на паре собственных ЯП, но они, как всегда бывает с gtk-шными инициативами, заглохли от недостатка энтузиазма.

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

Когда Plasma и Qt-проги летают там, где Gnome и GTK ворочаются как ватное одеяло, в помойку летит не железо, а криворукие поделия - Gnome и GTK.

А когда GTK-проги летают, а Plasma просто падает, а Qt-поделки, как всегда тормозят, да ещё и сжирают гигабайты памяти, то в помойку летит не GTK, а криворукие поделия - Plasma и Qt!

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

А когда GTK-проги летают, а Plasma просто падает

Никогда

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

У Kotlin’а жирный runtime. Более того, tornadofx базируется на JavaFX, который вырезали и выкинули из JDK. Ну и соответственно всё это будет тянуть JVM за собой.

Ну еще в gtk была попытка объединения разметки с логикой на паре собственных ЯП, но они, как всегда бывает с gtk-шными инициативами, заглохли от недостатка энтузиазма.

Да, Vala довольно интересный конкурент QML и, наверное, более успешный, раз на нём сделано несколько DE: Budgie и Pantheon. Они изначально пошли именно таким путём – их язык транслируется в C, приправленный glib и gtk, безо всяких промежуточных соплей, как в QtQuick/QML.

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

А я думал, что Vala мёртворождённая. На ней только гуй пишут или приложения целиком? Я однажды уже думал её освоить, но решил, что нет смысла, ибо считал, что мёртвая.

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

А я думал, что Vala мёртворождённая.

Там есть некоторые шероховатости в языке, но вообще жить можно, и не только ради дирижирования gtk-зверинцем. Но для себя я решил, что ну его.

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

У Kotlin’а жирный runtime

Если сравнивать с электроном, то нормально там всё. Жить можно. Другое дело, что учить кучу всего заново, но так везде.

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

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

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

А я думал, что Vala мёртворождённая.

Фактически ты прав. За пределы перечисленных мной DE, оно так и не выбралось. Некоторые приложения не завязанные на DE написаны на Vala, например, док Plank: https://github.com/ricotz/plank или https://github.com/search?o=desc&q=language%3AVala+vala&s=stars&type=Repositories, но всё это капля в море. Завязка на GTK+ и GLib серьёзно влияет на кросс-платформенность, поэтому Vala оказалась никому ненужной.

На ней только гуй пишут или приложения целиком?

По твоему желанию. Фактически, это просто сахарок над GLib и GTK+, который позволяет юзать ООП так, как к нему все привыкли, а не так, как это сделано в GTK+ и GLib.

Я однажды уже думал её освоить, но решил, что нет смысла, ибо считал, что мёртвая.

Попробовать точно стоит, это довольно прикольный проект. Осваивать полностью и писать приложения на подобном – вряд ли.

https://wiki.gnome.org/Projects/Vala/GTKSample

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

довольно прикольный проект

С точки зрения прикольности лучше учить кристалл. Он реально прикольный. Вала же есть ничто иное, как эволюция сишки в сторону сишарпа, так сказать еще одни современные плюсы.

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

С точки зрения прикольности лучше учить кристалл.

Почему не Haxe? Он кстати на Vala похож в плане синтаксиса и подхода.

так сказать еще одни современные плюсы.

Скорее старые плюсы, если вспомнить Cfront, написанный Страуструпом.

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

Э, haxe убогий, поскольку мультитаргет сильно мешает полёту фантазии автора. Да и вообще давно прошло время его хайпа, вместе со смертью флеша, как основной платформы его применения. Если выбирать между ним и валой, лучше брать валу.

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

сыро, глючно, тормозит, много весит

там же жабаскрипт почти, со всеми вытекающими

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

Нет, спасибо, и тормозило бы оно нещадно. Особенно на ембеддед платформах где нет 2d хардварной акселерации. Проходили, знаем. Проблевался я от этих виджетов знатно, лучше уж QML на опенгл.

Про ненужность QML заявляют только закостенелые хомячки, сидящие на десктопах. Как будто кроме их мирка больше ничего нет.

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

Нет, спасибо, и тормозило бы оно нещадно. Особенно на ембеддед платформах где нет 2d хардварной акселерации. Проходили, знаем. Проблевался я от этих виджетов знатно, лучше уж QML на опенгл.

Про ненужность QML заявляют только закостенелые хомячки, сидящие на десктопах. Как будто кроме их мирка больше ничего нет.

Лол, причём тут хардварное ускорение, QML, и QtWidgets?

Вполне реально было сделать хардварное ускорение и на QtWidgets, внезапно, Gtk4 использует Vulkan, а API не сильно поменялся с Gtk3...

Как будто, от применения Javascript магическим образом появилось хардварное ускорение отрисовки...

fsb4000 ★★★★★
()

На десктопе не пробовал, но в эмбеддед QML рулит и заруливает. А еще мы запилили на нем пару прог для iOS и зарелизили их без особых проблем. Кстати очень прикольно шарить код между мобилками и эмбеддед.

Pavval ★★★★★
()

Не Qt

Я думал это норма для линукса. Вот, посмотри на хром в манджаро на интел 3000 https://i.imgur.com/TlQ7K4S.gifv

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