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

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

Да я и так, просто понимаешь, в перерывах админю арчик, и когда при установке очередной софтины вижу в зависимостях какой-то Qt6, или, что еще хуже - Gtk4, мне хочется https://youtu.be/-rq91M0MMXk

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

gtk/qt это не движки для чтения настроек, а движки для рисования чего-то на экране. Настройки они тоже читают, но это побочное.

Впрочем, рисовать можно тоже без них, ведь есть libx11. Я вот ни gtk ни qt не изучал, а гуи софт для себя делаю иногда.

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

Это все понятно, но так или иначе, без подобного файла ты не сделаешь адекватную общую тему оформления на адекватной библиотеке, вроде libx11

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

Я так понял, главное это перемещаемые виджеты.

Как пример:

[geometry]
floating=true
buttons="10% 0% 10% 100%"

В buttons первые два значение это первый y% x%, вторые два - вторые y% x%

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

Откуда я знаю, я ведь не разраб твоего приложения? просто используй любую библиотеку для GUI, GTK и Qt не единственные

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

А на это мне какая разница? Это должен разраб программировать

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

Ну напиши что нибудь сложнее окошка с тремя кнопочками, а потом будешь говорить нужно ненужно. Достали идиоты на лоре, уйду я от вас…

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

а почему именно GTK/QT не нужны? Нужны wxWidgets?

xmikex ★★★★
()

если предложишь достойную альтернативу огнелису без жтк или культи - можно будет продолжить дискуссию

ananas ★★★★★
()

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

body{
background-color: rgba(238,238,238,.5);
color: rgba(51, 153, 255, 1.0); 
}
Тут background-color=Фон, color=Текст. Последния цифирь - Alpha канал, т.е. прозрачность.

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

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

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

я, и думаю большинство людей не любят CSS. Я прям не переношу

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

Я так понял, главное это перемещаемые виджеты.

Как пример:

.geometry{
position: absolute;
top: 10%;
left: 0%;
height: 90%;
width: 100%;
}

Первые две цифири это первый y% x%, вторые два - размеры блока по высоте/ширине от вьюпорта.

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

Текст, как тест. Чем хуже ini? Если использовать ini по полной, ещё и с вложенными подгруппами, получается ничуть не лучше.

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

Ну и толку от такого тулкита с таким мнением автора. Формошлепки должны исполнять все (в разумных пределах) желаемые извращения. А ведь есть Win API.

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

В GTK/Qt разраб так же может запретить что-то менять

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

Ну если вам не нужны - не используйте. А когда дорастете до большого и действительно сложного проекта - все сами поймете.

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

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

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

и в чем преимущество использования иксов напрямую?

В том что с твое прогой не надо тащить простыню из бесполезных зависимостей.

как там обрабатываются события нажатия и другие?

Получаешь событие от мыши (id окна, координаты, нажатая кнопка), обрабатываешь. На всякий случай предупрежу: надо знать язык программирования и уметь им пользоваться.

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

Сам ты deprecated. Я попробовал посмотреть на xcb, думал оно и правда удобнее чем xlib (по описанию). Оказалось там всё только хуже. Ну а xorg-у альтернатив нет. xfree86 устарел, а школоподелки типа wayland в расчёт не берём.

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

ну вот пользователь сделал окно размером в два раза меньше - относительные координаты сместились элементов управления, каждый раз вручную пересчитывать на что именно он внутри окна нажал?

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

Ну куда ты лезешь ? Ты же абсолютно ничего в этом не понимаешь, а уже концепт. Тьфу…

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

ну вот пользователь сделал окно размером в два раза меньше - относительные координаты сместились элементов управления, каждый раз вручную пересчитывать на что именно он внутри окна нажал?

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

firkax ★★★★★
()

Как на этом всём сделать аналог gimp, inkscape? Ну или dia хотяб?

Т.е. как на этом сделать приложение где действительно важен GUI, а не то что можно вполне успешно заменить эрзацем на ncurses без потери эффективности?

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

Не интересовался. Я вот себе WM написал несколько лет назад, кстати заготовка для пересчёта геометрии таскбара при ресайзе там есть, занимает несколько строчек.

WM под себя + xfce-terminal + mc

Все остальное гуи что писал - тоже без всяких gtk/qt но со своей прослойкой, наверно можно считать что это не «напрямую xlib».

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

CSS убивает унификацию

Её нет и не было.

приятную лично тебе тему оформления на сайтах

Используйте свои стили.

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