LINUX.ORG.RU

Есть ли вменяемые доки и/или туториалы по gtk3?

 


0

2

Официальный тутор уже прочитал и немало так потыкал на практике. Остались лишь (на ихнем сайте) api docs. При попытке запилить поле с текстом используя лишь api docs оказался в большой жопе. Т.е. поле-то запилить просто, а вот получить данные (или засунуть данные в него) не так тривиально.

Гуглёж обычно приводит на туториалы по gtk2, коий считается «устаревшим, без поддержки hidpi, wayland, whatever...», либо там используется python/rust/another_weird_language.

P.S. Qt не предлагать, в плюсы не умею, только лишь C

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 2)

Да, сейчас модно демонстрировать, как (не)удобно работать с библиотеками на Си в хипстерских языках. В чём проблема перевести из одного языка в другой?

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

Да, сейчас модно демонстрировать, как (не)удобно работать с библиотеками на Си в хипстерских языках.

да, я это заметил

В чём проблема перевести из одного языка в другой?

В том, что помимо gtk надо еще и логику переводить на другой язык, а я это не планирую. Ну и не нравятся (или не подходят под задачу) мне другие языки

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

Я имел в виду чтение кода на каком-нибудь расте, а затем написание аналогичного кода на Си.

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

Ну и какая разница с C то?

а ты смотрел? я-то смотрел, отличие довольно такие сильно. Если приложение сложнее, чем helloworld, то так называемый «перевод» составит довольно сильные трудности

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

Вот насчет конкретно раста, честно сказать, не знаю. А у тебя что, есть подобная практика?

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

Я ничего сложнее однооконных софтин на gtk не писал.
Ну, между питоном и C точно разницы нет. По автокомплиту легко можно понять, о чем идет речь.

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

Ну, между питоном и C точно разницы нет. По автокомплиту легко можно понять, о чем идет речь.

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

на питоне примеры видел. Как-то оно «не то». А однооконно-однокнопочные программы я и на XCB могу писать =)

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

Не стоит тратить жизнь на некрофилию. Даже Линус давно перешел на QT в своих проектах. Может пора задуматься?

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

Не стоит тратить жизнь на некрофилию.

некрофилия - это всякие устаревшие языки типа Ада, фортран, алгол, etc (на некоторых из них даже сейчас пишут кстати, лол)

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

Даже Линус давно перешел на QT в своих проектах.

и чё? плюсы уродливы. И если уж пошла речь о знаменитостях, Столлман тоже так считает. Ну и 1к страниц официальной документации к языку говорит не в его пользу.

Может пора задуматься?

в первую очередь, у человека есть СВОЯ голова на плечах. Мнение людей это, конечно, очень важно, но его следует лишь учитывать, и не более того

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

При попытке запилить поле с (не)редактируемым текстом используя лишь api docs оказался в большой жопе.

Не проверял, но по докам нашлось вот это:

GtkEntry *entry;
gtk_editable_set_editable(GTK_EDITABLE(entry), FALSE);

Ищи в офлайновом Devhelp по «set_editable».

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

не, я имел ввиду не установка флага «редактируемый->не редактируемый», а вообще, работа с текстовым полем

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

Там вроде всё есть, разве нет? Если нет нужной информации, надо смотреть в классе-предке, и так далее вверх по иерархии.

i-rinat ★★★★★
()

По gtk3 из туториалов только how to. В осоновном используй документацию по api. Ну и придется иногда смотреть исходники отдельных компонентов gtk или другого софта, где функционал какой-то нужный реализован. Потому как в осоновном разработчики каких-то фич в gtk3 и пишут\коммитят в софт для gnome новые возможности (gtk_widget_class_set_template\gtk_widget_init_template например).

ykroop
()

А ты glade не используешь? Там просто галочку можно поставить editable у поля.

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

Там вроде всё есть, разве нет? Если нет нужной информации, надо смотреть в классе-предке, и так далее вверх по иерархии.

подправил шапку темы. оно-то есть, но чёрт ногу сломит

все равно спасибо

аналогичный ответ pawnhearts, ykroop

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

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

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

спасибо, но его коммитов там что-то не нашел - скорее это просто проект, который он курирует

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

К стати да. Когда-то одним глазом глянул и прихренел. После операции вида «Скопипастил пример с доки, скомпилил, не скомпилилось» огорчился и пересел на Qt.

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

Скопипастил пример с доки, скомпилил, не скомпилилось

странно, у меня как раз примеры получались отлично

reprimand ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

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

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

А Qt я не использую по двум причинам:
1) Плюсы
2) Довольно тяжеловесен (хотя в процессе ковыряния в gtk3 возникло подозрение, что он тоже не очень худой)

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

в плюсы не умею, только лишь C

Проще изучить плюсы для куте чем «GTK: как имитировать плюсы на сях и получить удовольствие»

Deleted
()

Т.е. поле-то запилить просто, а вот получить данные (или засунуть данные в него) не так тривиально.

Ээ, а это что: https://developer.gnome.org/gtk3/stable/GtkEntry.html#gtk-entry-get-text

да и так вроде можно: https://developer.gnome.org/gtk3/stable/GtkEditable.html#gtk-editable-get-chars

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

тяжеловесен

Это как вообще? Запихнуть в список десять тысяч элементов, а потом смотреть, что тормозит меньше?

i-rinat ★★★★★
()
Ответ на: комментарий от reprimand

Это было еще во времена gtk2, возможно что-то поменялось. В любом случае так дока годилась только для случаев типа «Блин, забыл как там делается %somthing%, надо доку глянуть.»

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

Ээ, а это что

GtkEntryBuffer

ты же не думаешь что я это не видел? могу огорчить, но этот GtkEntryBuffer это не далеко не char *. Там отдельная пританцовка с бубном.

да и так вроде можно

GtkEditable

при этом нужный виджет имеет тип GtkWidget

в общем забей, я где-то уже видел годную ссылку в которой объясняется что к чему =)

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

могу огорчить, но этот GtkEntryBuffer это не далеко не char *.

там прямо по ссылке два вызова приводящих к gchar*

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

Это как вообще? Запихнуть в список десять тысяч элементов, а потом смотреть, что тормозит меньше?

Нет. Это когда у тебя готовая программа жрет немало так памяти, а выполнение ивента по кнопке происходит не так уж и мгновенно.

Мб у тебя есть на примере какая-то годная Qt программа, а то мне какие-то тормозы попадались.

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

Мб у тебя есть на примере какая-то годная Qt программа

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

i-rinat ★★★★★
()

Qt имеет биндинги для основных популярных языков, поэтому нелюбовь к плюсам - плохая отговорка. Кроме того на Qt можно писать для многих платформ одновременно, с минимальными изменениями кода. Зачем усложнять себе жизнь? Конечно, выбор каждого.

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

Гугл же, не стесняемся, гуглим... И под словом «пошукать», я имел ввиду найти эл.версию. Сюда ещё загляни, «шаг-за-шагом» для бедных студентов http://zetcode.com/

xterro ★★★★★
()

самое главное: не следуй советам учить C++ и gtkmm. это самые вредные советы.

edit: тут я имел ввиду что именно gtkmm вредный совет. знать C++ никогда не помешает, чтобы знать врага в лицо, так сказать.

если не можешь найти примеров по GTK3 — бери примеры по GTK2, они практически одинаковые. отличий либо нет вообще, либо в каких-то деталях, на которые ты еще не факт кто наткнешься.

есть хороший вариант разобраться прямо по коду. бери gtk-demo (он вообще должен быть в составе GTK любой версии, но мантайнеры его часто выпиливают), запускай, ищи в нем пример того что тебе надо, и смотри в исходники.

далее, по документации.. тебе наверное нужно что-то вроде GtkTextView.

идем в доки, и там видим такой текст:

You may wish to begin by reading the text widget conceptual overview which gives an overview of all the objects and data types related to the text widget and how they work together.

проходишь по ссылке, и получаешь искомое.

это не то что ты искал?

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

- это при его-то особой «любви» к плюсам ?!

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

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

и чё? плюсы уродливы. И если уж пошла речь о знаменитостях, Столлман тоже так считает. Ну и 1к страниц официальной документации к языку говорит не в его пользу.

Пиши гуй на Qt, а логику на сях. Двадцать строк переживёшь.

А РМС в этом тысячелетии хоть строчку кода написал?

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

C++ сейчас слишком популярен.

Это в каком году? В 2000 еще можно поверить, в 2016 популярны Java/C#/JS. Ты наверное судишь только по вакансиям в своем мухосранске.

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

Пробовал до C++11 и после. После стало лучше — обработчики сигналов можно лямбдами делать, не плодя приватных методов. Немного не хватает в некоторых местах optional, но его и в стандартном C++11 нет. Ещё напрягают RefPtr, но если их убрать, все старые приложения отвалятся.

Из бяк я заметил появившийся в GTK+ 3 глюк с отрицательной высотой виджетов. (Почему-то таблице позволяется свернуться до размеров меньше, чем высота заголовка. Но это вроде не в gtkmm баг, а в самом GTK+ 3.

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