Я пытаюсь изменить ширину столбцов. Когда я устанавливаю их, чтобы автоматически сортировать все хорошие размеры, но я не могу сделать их меньше.Autosize Python Gtk3 TreeViewColumn, но сделать их resizable
Затем я установил столбцы в фиксированный размер, но теперь горизонтальная полоса прокрутки больше не отображается.
Так что, возможно, можно начать с автоматической сортировки ширины столбца, но также дать возможность изменить ширину позже?
#!/usr/bin/env python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
window.set_size_request(400, 200)
mainbox = Gtk.VBox()
window.add(mainbox)
scrolled_window = Gtk.ScrolledWindow()
mainbox.pack_start(scrolled_window, True, True, 0)
transactions_liststore = Gtk.ListStore(str, str, str, str, str, str)
for n in range(30):
transactions_liststore.append(["A", "2016-10-10", "Ulrich Farmer", "99,99 EUR", "A short Text", "A longer Text with much much more more content"])
treeview = Gtk.TreeView(Gtk.TreeModelSort(transactions_liststore))
scrolled_window.add(treeview)
for n, name in enumerate(["Type", "Date", "Name", "Value", "Info1", "Info2"]):
cell = Gtk.CellRendererText()
column = Gtk.TreeViewColumn(name, cell, text=n)
if True:
column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
column.set_fixed_width(50)
column.set_min_width(50)
column.set_expand(True)
column.set_resizable(True)
column.set_reorderable(True)
treeview.append_column(column)
window.show_all()
Gtk.main()
редактировать: найти на https://lazka.github.io/pgi-docs/Gtk-3.0/classes/TreeViewColumn.html#Gtk.TreeViewColumn.set_resizable
Если изменяемыми истинна и проклейки режим колонны Gtk.TreeViewColumnSizing.AUTOSIZE, то режим калибровки изменяется на Gtk.TreeViewColumnSizing.GROW_ONLY ,
Спасибо за ваш комментарий. Это моя проблема: когда я устанавливаю их для автоматической настройки наличия хорошего размера, но я не могу сделать их меньше. – oxidworks
Вы пытаетесь сделать их меньше, чем имя столбца? И в какой колонке вы пытаетесь сделать меньше? – theGtknerd
Не меньше имени столбца, а затем текста содержимого. Например, подумайте, что Info1 имеет одну строку с очень длинным текстовым контентом, но вы хотите, чтобы строка была очень маленькой, потому что более необходимо видеть строки Info2 :-) – oxidworks