У меня есть набор меток в потоковом поле, проблема в том, что я бы хотел, чтобы эти метки были максимально 96 пикселей шириной. Я установил label.set_ellipsize (True), но так как Flowbox предоставляет им столько места, сколько им нравится, они не получают эллипсис, хотя я задал их размерный запрос до 96px в ширину.python GTK3 limit label width
Я перепробовал все функции я мог бы найти, что, казалось, даже косвенное отношение на всех виджетов, вовлеченных, но ничего не похоже на работу.
Единственным обходным решением, которое я нашел, было использование set_min_children_per_line(), но для этого нужно вычислить количество детей из ширины потокового блока, которое зависит от количества детей в строке, что приводит к тому, что потоковый блок становится действительно очень быстрым.
У меня, вероятно, отсутствует что-то очевидное, но я уже несколько дней бил головой об этой проблеме.
Я сделал это TestCase, который демонстрирует проблему, когда количество столбцов не делится на две части:
from gi.repository import Gtk as gtk
from gi.repository import Pango as pango
class Widget(gtk.VBox):
def __init__(self,label):
gtk.VBox.__init__(self)
image=gtk.Image.new_from_icon_name("image-missing",gtk.IconSize.DIALOG)
image.set_size_request(96,96)
self.add(image)
lbl=gtk.Label(label)
self.add(lbl)
class TestCase(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
lbl=gtk.Label("some text")
scrollbox=gtk.ScrolledWindow()
self.add(scrollbox)
flowbox=gtk.FlowBox()
scrollbox.add(flowbox)
for i in range(50):
w=Widget("longlabel"*5)
flowbox.add(w)
w=Widget("short")
flowbox.add(w)
if __name__=="__main__":
w=TestCase()
w.connect("delete-event",gtk.main_quit)
w.show_all()
gtk.main()
Вы пробовали ['Gtk.Label.set_max_width_chars (n_chars)'] (https://lazka.github.io/pgi-docs/Gtk-3.0/classes/Label.html#Gtk.Label.set_max_width_chars)? – elya5
Я пробовал это. это ничего не меняет, и это не то, что я хочу в любом случае. Я хочу установить ширину в пикселях, чтобы она соответствовала значкам. – doxin
Можете ли вы предоставить код? Возможно, есть еще кое-что свойство, мешающее (по умолчанию или заданное вами в другом месте) ... игра с GtkLabels всегда забавная xx – andlabs