LINUX.ORG.RU

На чем удобно делать GUI?

 


1

3

Ищу нечто, где просто и легко можно создавать GUI, с минимумом писанины кода (желательно, не трогая визуальные средства и всякие XML). Не важно под какую платформу (если даже оно под Amiga), не важно какого года, не важно какие требования к ресурсам или зависимостям. Особенно интересны средства, где можно сделать тысячу окошек с разными кисточками/палитрами (как в Гимпе), склеивать/разделять эти окошки в рантайме, при этом желательно не изводить пользователя тысячей нативных окон, как это когда-то делал Гимп.

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

Ответ весьма очевиден: C++/Qt либо Vala/GTK+.

QML тоже хороший вариант, как тут подсказывали.

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

Ну и дела. А я же искал. У них на сайте фиг что найдешь.

UPD: никидайте FOSS проектов с использованием QML (не из KDE). А то все хвалят, а софта на нём почти нет.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от ruzisufaka

Оригинальные у тебя представления о простоте.

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

QtCreator

Там очень мало QML.

Ubuntu Unity 8

Вроде как еще релиза не было.

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

Ну, тогда можно еще глянуть JavaFX+Nashorn: тоже не быстро, но «на острие прогресса» :)

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

Про FOSS не знаю, а так 2GIS ня мобилки.

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

Нуклеар очень интересен, кода там очень мало, но... Если почитать issues, то впечатление чего-то сырого. Официальных бекендов, как я понимаю, не завезли, а те, что в комплекте с примерами, явно недописаны (на момент, когда я смотрел). Абстракции накладывают свои ограничения, к примеру, кнопку можно создать только внутри нарисованного окна, которое нарисовано на реальном окне (если я ничего не перепутал и правильно понял).

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

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

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

Позволю себе усложнить вопрос: возьмем окошко гимпа, внутри которого есть палитры, кисточки, панельки настройки шрифтов и так далее. Все это можно таскать, склеивать в произвольные панельки с разным набором вкладок. Внутри вкладок могут быть списки с фильтрами, тегами и прочим. Любое неправильное движение и гимп падает (у меня). Это хоть где-то есть малой кровью?

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

Зачем

на самом деле все просто - на тот момент у qt не было lgpl + решение разрабатывалось с оклядкой на встраивание (я все это даже запускал без иксов в directfb). Но в итоге на встраивание забили, софт поставляется только для винды. Сейчас естественно яб взял qt, либо вообще запилил бы на андроиде.

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

Почему gtk не взяли? Он умел же через framebuffer работать тоже, даже исталятор какого-то дистра так запускался.

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

сложно сказать. его даже не рассматривали, на сколько помню. но даже сегодня на мой взгляд gtk был бы последним в списке для такого софта.

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

Нет, не мышкой:

import QtQuick 2.7
import QtQuick.Controls 1.5
import QtQuick.Layouts 1.3

Item {
    width: 640
    height: 480

    property alias button1: button1
    property alias button2: button2

    RowLayout {
        anchors.centerIn: parent

        Button {
            id: button1
            text: qsTr("Press Me 1")
        }

        Button {
            id: button2
            text: qsTr("Press Me 2")
        }
    }
}

Но можно и мышкой.

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

Сейчас естественно яб взял qt, либо вообще запилил бы на андроиде.

Да, QML для подобных киоск-интерфейсов просто шик. За денёк бы управился.

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

ну за денек это ты загнул, но за месяц да, вполне реально накидать гуй целиком для всего софта.

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

А вообще есть какой-нибудь хендбук с рассмотрением фич? Так чтобы можно сходу было заменить MFC и прочий треш.

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

Но пока неплохо, гораздо проще Qt

Ты сравниваешь с QtWidgets или c QML? Последний, вообще-то, даёт весьма близкое к тому, что ты написал на t*.

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

Эту знаю. Но в итоге даже десятка прог не наберётся. Технология как-то не ахти.

Просто технология в основном для профессионалов (HMI в первую очередь а не GUI) так что тебе по понятным причинам неизвестная.

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

На Quick кода будет не больше, чем в примере на Groovy.

По-моему, его даже будет почти не больше, чем в примере на tcl. И при этом хорошая связь с обработчиками и прочим низким уровнем.

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

Почему важно писать грамотно

никидайте FOSS проектов с использованием QML

Распарсил первое слово фонетически как «не кидайте» и долго думал, почему не надо кидать, если

все хвалят, а софта на нём почти нет.

Потом сообразил, что ты, скорее всего, имел в виду «нАкидайте».

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

Ох лол. Сейчас приступ хватит от своей же непрофессиональности.

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

Несвободных намного больше?

Намного. Я за последние три месяца работал/работаю с 6 проектами на QML большая часть из которых сейчас в разработке.

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

Ну а кроме лично вас кто-то, что-то пилит?

На том же унылом electron уже запили кучу всякого мусора, а ему от силы год. А QML уже лет 5.

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

Ну так проекты не мои, я очевидно участвую в небольшом их проценте, значит есть много людей/фирм, которые работают с технологией, но не пиарятся по этому поводу.

Был один заказчик, который выбирал на чем писать — QML или Electron, в итоге перевесило, что у них уже есть веб версия и с Electron получить настольное приложение можно сильно дешевле и быстрее, чем пилить его с нуля на QML.

На Electron в целом проще (и иногда дешевле) найти разработчиков, это тоже важный фактор. Кстати, первый релиз был больше чем три года назад, но название было другое.

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

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 1)
Ответ на: комментарий от CrossFire

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

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

RazrFalcon ★★★★★
()

Очевидно, на reactdom (возможно, с electron)/reactnative.

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

Сам QML. Даже в блоге Qt были заметки на эту тему. Они там всё фиксят и фиксят, а толку 0.

Вот, в описании Qt Quick Controls 2 упоминают тормоза: https://doc.qt.io/qt-5/qtquickcontrols2-differences.html

Ресайз QML окна - боль. Всё тупит. Ибо OpenGl.

Софтварного рендеринга всё еще нет, из-за чего проги в виртуалках работают с артефактами.

Потребление памяти в разы больше чем у виджетов.

Нагрузка на проц выше, если QML использовать не только для виджетов, но еще и логику туда вынести. JS тормозит как факт.

PS: я с QML плотно не работал, тонкостей не знаю, но вышеперечисленное останавливает от изучения. И это не считая того, что они каждый год там всё переписывают.

PSS: сама идея QML мне нравится, но исполнение, увы, - нет.

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

Вот, в описании Qt Quick Controls 2 упоминают тормоза

Упоминают, что их пофиксили как раз в Qt Quick Controls 2, но там речь про контролы, а не про QML.

Софтварного рендеринга всё еще нет, из-за чего проги в виртуалках работают с артефактами.

Будет в 5.8, на венде вроде как есть, потому что в виртуалке все ок.

Потребление памяти в разы больше чем у виджетов.

Не такое уж критичное потребление, это не повод отказываться

Ресайз QML окна - боль. Всё тупит. Ибо OpenGl.

С ресайзом есть проблемы, это да, но он нужен далеко не везде.

И это не считая того, что они каждый год там всё переписывают.

Я на прошлой неделе писал на QtQuick 1.0, это где-то Qt 4.7, разницы вообще не заметил, так что обратная совместимость просто отличная — переписывают только под капотом.

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 1)
Ответ на: комментарий от CrossFire

Упоминают, что их пофиксили как раз в Qt Quick Controls 2

Ага. Отказавшись от, и так кривой, системной темы. То есть для десктопа не годится.

Не такое уж критичное потребление

hello world под 50МиБ это норм?

но он нужен далеко не везде

На десктопе нужен.

Для мобилок qml наверное годится, но не для десктопа.

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

Ага. Отказавшись от, и так кривой, системной темы. То есть для десктопа не годится.

Там есть Universal тема для последних оффтопов, а десктоп приложения с действительно кастомным дизайном чаще всего не растягиваются, просто потому что этот самый дизайн поедет. Ну и смартфоны со встраиваемыми устройствами хорошо вписываются, да.

hello world под 50МиБ это норм?

У меня прямо сейчас стандартный пример с галереей Controls 2 кушает 23 Мб. Это норм.

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

У меня прога на 30к строк, на виджетах, жрёт 8МиБ.

А QML еще нехило кеширует всё, что спокойно приводит к 50+МиБ

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

Это ваше мнение.

Вопрос не в доступной памяти, а в эффективно занятой. Мне не улыбается забивать память всяким мусором когда есть альтернативы.

Простой пример: Atom vs Sublime. Последний потребляем на порядки меньше ОЗУ. Занимает на порядки меньше места на диске. Ощутимо быстрее работает.

Вот вы мне предлагаете использовать Atom.

А если о наболевшем - то плазмоиды в KDE5, которые все поголовно на qml, очень даже не хило жрут ОЗУ. krunner вот прямо сейчас жрёт 50МиБ, при условии, что это простое поле ввода.

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