Ho un set di etichette in un flowbox, il problema è che mi piacerebbe che queste etichette fossero larghe 96px al massimo. Ho impostato label.set_ellipsize (True), ma dal momento che la flowbox offre loro spazio a loro piacimento, non vengono ellissi, anche se ho impostato la dimensione della richiesta su 96px wide.python GTK3 etichetta limite larghezza
Ho provato tutte le funzioni che ho trovato che sembrava anche solo indirettamente legata a tutti i widget coinvolti, ma nulla sembra funzionare.
l'unica soluzione che ho trovato era usare set_min_children_per_line() ma che richiede il calcolo del numero di bambini dalla larghezza della flowbox che dipende dal numero di figli per riga, che porta a una flowbox che diventa davvero molto veloce.
Probabilmente mi manca qualcosa di ovvio, ma per giorni ho perso la testa su questo problema.
Ho fatto questo testcase che presenta il problema quando quantità di colonne non è divisibile per due:
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()
Hai provato ['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
L'ho provato. non cambia nulla, e non è quello che voglio in ogni caso. Voglio impostare la larghezza in pixel in modo che corrisponda alle icone. – doxin
Puoi fornire del codice? Forse c'è qualche altra proprietà che si intromette (o per impostazione predefinita o impostata da voi altrove) ... giocare con GtkLabels è sempre divertente xx – andlabs