LINUX.ORG.RU

GtkTreeView, GtkCellRendererText и GtkRendererPixbuf

 


0

3

Нужно засунуть текст и изображение в одну строку, одну колонку. В факе написано, что для этого можно несколько ячеек поместить в одну колонку. В итоге получается то, что на картинке: https://i.imgur.com/pPk8QXF.png

Разрывы между ячейками и видно, что ячейки выстраиваются друг под другом. Как заставить это нормально отображаться? Можно ли объединить ячейки?


ты как GtkCellRenderer-ы в GtkCellLayout пакуешь? если через gtk_cell_layout_pack_start() - последний аргумент должен быть FALSE. если через GtkBuilder малюешь - подкрути соответствующие атрибуты

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

Пакую через gtk_tree_view_column_pack_start(), c GtkCellLayout я не понял что делать. Вообще, там где-то было написано, что если мы expand выставляем в FALSE, то пространство, которое должно было быть выделено для этих ячеек, автоматом отлетает в последнюю ячейку, что кажется и происходит.

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

это ты пакуешь колонки. а если ты желаешь в пределах одной колонки использовать несколько рендереров, в твоем примере - текст и два пиксбуфа, тебе сначала надо создать лейаут, и потом его уже запихить в колонку, вместо отдельного рендерера. ты же или не сделал этого, и пихал каждый рендерер в собственную колонку, или сделал, но с expand=TRUE, что все рендереры сделало одинаковой ширины

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

На скриншоте, по тайтлу видно, что у меня одна колонка. А если выставить expand=TRUE, то будет выглядеть вот так https://i.imgur.com/uC7dqlO.png

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

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

просто обращайся к GtkTreeViewColumn как к GtkCellLayout. и попробуй пиксбуфы перед текстом размещать - будет ли тот же эффект?

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

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

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

Используй GtkListBox {GtkListBoxRow}. В GtkListBoxRow можно хоть слона засунуть и layout ограничен только фантазией.

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