मुझे फ्लोबॉक्स में लेबल का एक सेट मिला है, समस्या यह है कि मैं इन लेबलों को सबसे अधिक 96px चौड़ा होना चाहता हूं। मैंने label.set_ellipsize (True) सेट किया है, लेकिन चूंकि फ्लोबॉक्स उन्हें उतना ही कमरा देता है जितना उन्हें पसंद है क्योंकि उन्हें इलिप्सिज्ड नहीं मिलता है, भले ही मैंने अपना आकार अनुरोध 96px चौड़ा कर दिया हो।पायथन जीटीके 3 सीमा लेबल चौड़ाई
मैं हर समारोह मैं मिल सकता है कि यहां तक कि ऊपरी तौर सभी शामिल विगेट्स पर संबंधित लग रहा था की कोशिश की है, लेकिन कुछ भी काम करने के लिए लगता है।
मैंने पाया कि एकमात्र कामकाज 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