LINUX.ORG.RU
ФорумTalks

Зачем нужны GTK/Qt?

 , ,


1

3

Зачем нужны такие тяжелые и неудобные инструменты вроде GTK и Qt? Можно же просто использовать файл, на подобии Xresoures, только с адекватным синтаксизом, вроде .ini, или просто .conf. К примеру вот примерное содержимое theme.ini:

[color]
bg="282828FF"
fg="EBDBB2FF"

Тут bg=BackGround=Фон, fg=ForeGround=Текст, кнопочки, другое. Последние две буквы - Alpha канал, т.е. прозрачность

Так же помимо цветов нужно указывать всякие кнопочки, переключатели, ползунки, вот пример для кнопочки:

[button]
button=/usr/share/MyBestSettingsKit/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left

Тут из контекста, думаю понятно

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

[image]
settings=/usr/share/MyBestSettingsKit/images/settings.png
brush=/usr/share/MyBestSettingsKit/images/brush.png

Думаю мою идею вы поняли. Не нужен никакой софт, есть только файл, из которого другие проги собственноручно будут брать настройки. Это самый универсальный вариант, т.к это может использоваться даже в TUI интерфейсах. Также универсальность заключается в том, что можно делать отдельные настройки для разного софта:

[color/ProgrammName]
bg="#00000000"
fg="#FFFFFF00"

[button/ProgrammName]
button=/usr/share/MyProprietaryToolPath/button.png
text_on_button=true
text_on_button_side=right
image_on_button=true
image_on_button_side=left

[image]
settings=/usr/share/MyProprietaryToolPath/images/settings.png
brush=/usr/share/MyProprietaryToolPath/images/brush.png

Ну а путь к самому этому стандартному файлу можно указывать в переменной окружения

P.s. Я понимаю, что в терминале (по стандарту) нет никаких картинок, я говорил про текст.

Перемещено xaizek из desktop

«Настроечным файлам» нужен какой-то движок, чтобы их парсить и рисовать на экране геометрию оконного приложения. Такими «движками» как раз и являются GTK/QT/SWING/etc., а «настроечные файлы» оформляются в текст программы на строгом языке программирования, который проводит анализ кода не хуже какого-нибудь Web-движка с кучей исключений из правил. Таким образом, классические тулкиты - это классический способ многократного использования проверенного кода, а твой способ подвержен ошибкам и неточностям.

iZEN ★★★★★
()

Во первых Qt - это не только синтаксис для описания графического интерфейса. Тут еще огромный функционал. Ну да ладно. Давай обсудим гуи. То, что ты описал - это просто некий формат, который описывает, как должен выглядеть интерфейс. А реализовывать обработку данного файла и отображение графического интерфейса ты предлагаешь каждый раз самостоятельно разработчикам? Ты представляешь объем работы? А если требуется адаптивный интерфейс, в котором элементы правильно растягиваются/сжимаются при изменении размеров окна? Тоже самим все писать? А оптимизация производительности при большом количестве элементов и т.п.

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

Частично да, но все-таки по умолчанию он выключен и тему ты задаешь сам

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

Её нет и не было.
Конечно была, настрой, для примера palemoon, и зайди на ванильный HTML сайт, без всяких CSS/JS
Используйте свои стили.
Ты, видимо, не особо понял смысл треда. Я люблю конкретно мою тему оформления, и хочу видеть её везде, не только на своем сайте. У других людей другие любимые темы оформления, и они хотят видить их на моем сайте

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

Дело твоё, я никого не заставляю, тем более, что принуждать не к чему, это просто примерный концепт. Просто я искренней не понимаю, почему нельзя так, хотел, чтобы мне объяснили

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

Попробуй мысленно вернуться во времена, когда не было никаких GUI-тулкитов, и писали софт на «голых иксах». И проследи причинно-следственную связь, почему начали делать абстракции, графические тулкиты, и даже целые фреймворки.

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

Конечно была, настрой, для примера palemoon, и зайди на ванильный HTML сайт, без всяких CSS/JS

Для сайтов уровня веб 1.0 всё до сих пор в силе. Для чего-то поновее никогда не было одних стилей.

fernandos ★★★
()

Какой-то непрограммист писал. Qt - это единственная библиотека разработки, которая написана со всеми принципами ООП. Соответственно уровень безопасности выше. Настройки в текстах там можно использовать.
Жрут много те, кого мы кормим...(с).

xwicked ★★☆
()

Зачем вообще нужен гуй? Есть же ncurses и фреймбуфер на крайняк.

Dog ★★★
()

Зачем нужны такие тяжелые и неудобные инструменты вроде грузовиков и автобусов? Можно же просто использовать велосипеды.

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

Зачем нужны такие тяжелые и неудобные инструменты вроде грузовиков и автобусов? Можно же просто использовать велосипеды.

Аналогия немного неудачная. Что касается программ, то да Оффтопик 10 с последним обновлением 21h1 выдаёт курсор занятости каждые 15-20 сек., хотя функционал на уровне xp.
Qt могли сделать более легковесным, сохранив функционал, но чуда не случилось.
Грузовик тащит больше веса, а оффтопик тащит тонну фентиклюшек, при этом тащится от себя любимого. :D XP гораздо больше и быстрее вывезет.

xwicked ★★☆
()

Затем что дефолтными виджетами, которые просто нарисованы и ничего не делают (Именно это твой пример демонстрирует), ограничиваются разве что самые примитивные из хеллоуворлдов.

Как только появляется обработка событий или потребность в кастомных виджетах, эти «описания интерфейса» становятся больше помехой, нежели решением.

anonymous-angler ★☆
()

А вообще, ты пытаешься изобрести то, что уже изобрели - QML или Elm. Только там авторы больше тебя подумали.

anonymous-angler ★☆
()

Коты классные. Люблю их.

sparkie ★★★★★
()

а где у тебя собственно код токо как кнопки, чекбоксы и декорации окна себя ведут? как отрисовывают криволинейные формы? в случае с куте тут ещё должен быть сетевой стек, клиент-сервер, всяческие подсистемы ввода-вывода на все случаи жизни и джаваскрипт машина и ещё куча стандартных востребованных методов и классов чтобы их можно было не писать самостоятельно или с минимальными ООП приколами допилить до необходимого функционала.

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

как оказалось единая тема оформления в действительности никому не нужна и проще её костыльно имитировать потом чем изначально писать софт подстраиваясь под такое требование.

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

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

Если бы всё было так просто, все до сих пор программировали бы на чистом WinAPI

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

json и еденички с нулями это тоже технически текст, давайте в бинарниках хранить конфиги?

Во времена DOS так и делали

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

как оказалось единая тема оформления в действительности никому не нужна

Не совсем так. В винде большинство используют единую тему оформления, и ничё, брат жив

tiinn ★★★★★
()

Это ты типа изобрел glade, но забыл, что надо указывать, какая именно картинка на кнопке?

t184256 ★★★★★
()

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

shimon ★★★★★
()
Ответ на: комментарий от ananas
Зависит от           : gtk3  nss  alsa-lib  xdg-utils  libxss  libcups
                       libgcrypt  ttf-liberation  systemd  dbus  libpulse
                       pciutils  libva  desktop-file-utils  hicolor-icon-theme
                       fontconfig  libjpeg  icu  flac  snappy  libxml2  ffmpeg
                       libwebp  minizip  opus  harfbuzz  re2  libxslt  libpng
                       freetype2

Нужен, но по умолчанию он его не использует, нужно включать в настройках

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

Летов, ты лучше песни пой.

синтаксизом

дальше не читал

в перерывах админю арчик

уже не удивился

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

Нужен, но по умолчанию он его не использует

а какая разница, использует или нет, если все равно для сборки и рантайма gtk требуется?

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