Comments 19
У новичка в Gtk (в лице меня) возникло желание повторить все написанное.
Смотрел по диагонали (ибо GTK+ не знаю и не планировал изучать) и возникло три вопроса — 1) почему не выровнять name, health, power, text color? В какой-нибудь layout. Смотрится неаккуратно. 2) что за жуткая мода прикручивать нестандартные цвета наполовину. Нужно либо следовать исключительно системной палитре, либо полностью свою применять. Вот Вы поставили голубой, а у пользователя тёмная тема и голубой — стандартный цвет шрифта — и он же не видит никакого power. 3) в GTK+ цвет кодируется по 16 бит на канал?
Ну голубой фон — просто для того, что показать как это делается. Ето же пример для обучения, поэтому тут используется как можно больше всего.
Спасибо большое за вопросы
1) Я пока не стал усложнять пример (потому что считаю, что и так много всего накручено), целью было как раз показать как работать с GtkTreeView и GtkListStore. Можно попробовать использовать тот же горизонтальный контейнер GtkHBox (кому интересно могут попробовать и посмотреть что получится). Вообще про слои в GTK+ можно написать отдельный огромный пост, там много интересного и не так всё просто как кажется. Будет время займусь обязательно этим.
2) Вы абсолютно правы, но я к сожалению пока не нашел способа как это задать в Glade. возможно прийдётся опять какой-то хак делать в нём. Если кто-то мне подскажет, буду рад.
3) Да, цвет кодируется 16 бит на канал и представляется вот в такой структуре:
1) Я пока не стал усложнять пример (потому что считаю, что и так много всего накручено), целью было как раз показать как работать с GtkTreeView и GtkListStore. Можно попробовать использовать тот же горизонтальный контейнер GtkHBox (кому интересно могут попробовать и посмотреть что получится). Вообще про слои в GTK+ можно написать отдельный огромный пост, там много интересного и не так всё просто как кажется. Будет время займусь обязательно этим.
2) Вы абсолютно правы, но я к сожалению пока не нашел способа как это задать в Glade. возможно прийдётся опять какой-то хак делать в нём. Если кто-то мне подскажет, буду рад.
3) Да, цвет кодируется 16 бит на канал и представляется вот в такой структуре:
typedef struct {
guint32 pixel;
guint16 red;
guint16 green;
guint16 blue;
} GdkColor;
А чего такое
guint32 pixel;
в этой структуре?Спасибо за ответы :) ИМХО, первый пункт действительно стоило бы раскрыть — если не здесь, то в отдельном топике.
Дождались :) Спасибо за труд
Я ни коим образом не специалист по GTK+, но я прочитал по диагонали этот и предыдущий ваши посты по GTK+.
Там тоже задавали этот вопрос, но внятный ответ так и не был получен.
Поэтому спрошу ещё раз здесь: почему вы используете C++, а не C?
Там тоже задавали этот вопрос, но внятный ответ так и не был получен.
Поэтому спрошу ещё раз здесь: почему вы используете C++, а не C?
Я показываю как можно в С++ проект добавить использование библиотеки пользовательских интерфейсов GTK+, как раз одним из её плюсов и является, что можно писать на большим количестве языков. Также мне как-то ближе С++, чем C. Да, есть специальная обёртка gtkmm для того чтобы писать на C++ и она как раз заточена для этого, но чтобы лучше понять GTK+ я всё же считаю учиться на «чистом» GTK+, а потом уже перейти, например, на gtkmm или PyGTK (обёртка для питона).
Отличная статья! Обязательно попробую повторить все вышеизложенное! :]
Спасибо за подробный туториал.
У меня вопрос несколько не по теме, но просто к знатоку GTK. В Exaile ведь используются именно эти виджеты?
Вопрос такой. Если текст в колонке не умещается в ее ширину, то он отображается с многоточием в конце. Это понятно. А чтобы при наведении на него мышкой появлялось всплывающая подсказка с полным текстом, какие нужно сделать телодвижения? По умолчанию этого не происходит?
Для сравнения, в Windows в системных TreeView и ListView это по умолчанию есть, и следовательно работает во всех программах одинаково (если только разработчик сам это не запрещает). А в Линуксе, сколько встречаю программ на GTK, где-то работает, но в большинстве нет. Что порой очень расстраивает.
У меня вопрос несколько не по теме, но просто к знатоку GTK. В Exaile ведь используются именно эти виджеты?
Вопрос такой. Если текст в колонке не умещается в ее ширину, то он отображается с многоточием в конце. Это понятно. А чтобы при наведении на него мышкой появлялось всплывающая подсказка с полным текстом, какие нужно сделать телодвижения? По умолчанию этого не происходит?
Для сравнения, в Windows в системных TreeView и ListView это по умолчанию есть, и следовательно работает во всех программах одинаково (если только разработчик сам это не запрещает). А в Линуксе, сколько встречаю программ на GTK, где-то работает, но в большинстве нет. Что порой очень расстраивает.
Да в Exaile используются эти виджеты — виджеты библиотеки GTK+.
По поводу Вашего вопроса. Я поискал решение и могу Вам предложить вот такой вариант. Если интефейс спроектирован в редакторе Glade, то нажимайте на GtkTreeView идёте в свойства, вкладка General. Там в самом низу будет свойство Tooltip column
и там нужно поставить номер колонки из хранилища GtkListStore (который как раз я в посте описывал) данные из которой для данной строки Вы хотите чтобы появлялись во всплывающей подсказке при наведении на строку.
Я подумаю еще над этим вопросом. Мне тоже интересно. Если интерфейс спроектирован не в Glade я тоже подумаю как сделать, там с помощью методов я уверен.
По поводу Вашего вопроса. Я поискал решение и могу Вам предложить вот такой вариант. Если интефейс спроектирован в редакторе Glade, то нажимайте на GtkTreeView идёте в свойства, вкладка General. Там в самом низу будет свойство Tooltip column
и там нужно поставить номер колонки из хранилища GtkListStore (который как раз я в посте описывал) данные из которой для данной строки Вы хотите чтобы появлялись во всплывающей подсказке при наведении на строку.
Я подумаю еще над этим вопросом. Мне тоже интересно. Если интерфейс спроектирован не в Glade я тоже подумаю как сделать, там с помощью методов я уверен.
Sign up to leave a comment.
Работа с GtkTreeView и GtkListStore с помощью редактора Glade для начинающих