2010-08-19 2 views
0

У меня есть виджет GTK, в данном случае TreeView. Он начинается довольно мелким и сжатым, так как в нем нет текста, кроме имен столбцов. Когда я добавляю вещи, он растет горизонтально, чтобы покрыть текст и вертикально, чтобы покрыть дополнительные строки. Если я уберу их, он сохранит свой расширенный размер.gtk: расширяйте виджет, как будто в нем есть текст

Это своего рода раздражает ваше окно, которое всегда будет изменять размер, когда вы добавляете вещи. Мой вопрос: как я могу «пред-» размер виджета? Как один из способов, это заполнить его нежелательным текстом, который, по моему мнению, является самым большим размером, который он может получить, а затем удалить текст, но это будет выглядеть не очень красиво. Есть ли способ лучше?

ответ

1
  1. Простейшее Ответ: treeview.set_size_request(width, height) (но тогда ваш взгляд дерево не будет расти, когда ему необходимо впоследствии.)
  2. Ваш вид дерева в коробке? Вы пробовали упаковать его с expand=True и fill=True?
  3. window.set_default_size(width, height) в целом gtk.Window - лучшее решение, потому что это «пред-» размеры окна, как вы говорите. Он может расти или уменьшаться пользователем меньшим образом.
+0

ах третий вариант кажется тем, что я хочу. Он упакован с расширением и заполнением, установленным в True, так как он правильно растет, но он просто начинается с малого. – Claudiu

+0

Я попробовал третий вариант, но даже если виджет древовидной структуры расширяется, он не расширяет никаких столбцов, кроме последнего. Есть ли способ сделать их более однородными? – Claudiu

+0

Вы можете установить свойства 'min-width' вашего' gtk.TreeViewColumn' в разумное значение, чтобы они не начинались с нуля или вызывали метод gtk.TreeView.columns_autosize() в определенные моменты времени автоматизировать столбцы. – ptomato