Tôi đã có một bộ nhãn trong một hộp lưu lượng, vấn đề là tôi muốn cho các nhãn này có kích thước tối đa 96px. Tôi đã đặt label.set_ellipsize (True), nhưng vì flowbox cung cấp cho họ nhiều chỗ nhất vì chúng không bị bỏ qua, mặc dù tôi đã đặt yêu cầu kích thước của chúng thành 96px.python GTK3 giới hạn chiều rộng nhãn
Tôi đã thử mọi chức năng tôi có thể thấy rằng dường như thậm chí hơi liên quan trên tất cả các vật dụng có liên quan, nhưng không có vẻ làm việc.
cách giải quyết duy nhất mà tôi tìm thấy là sử dụng set_min_children_per_line() nhưng yêu cầu tính toán số lượng trẻ em từ chiều rộng lưu lượng phụ thuộc vào số lượng trẻ em trên mỗi hàng, dẫn đến một luồng thực sự nhanh chóng.
Tôi có thể thiếu cái gì đó hiển nhiên, nhưng tôi đã bashing đầu của tôi về vấn đề này trong nhiều ngày nay.
Tôi đã thực hiện testcase này trưng bày các vấn đề khi số cột là không chia hết cho hai:
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()
Bạn đã thử ['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
Tôi đã thử điều đó. nó không thay đổi một thứ gì, và nó không phải là thứ tôi muốn trong mọi trường hợp. Tôi muốn thiết lập chiều rộng theo pixel để nó khớp với các biểu tượng. – doxin
Bạn có thể cung cấp một số mã không? Có lẽ có một số tài sản khác nhận được trong cách (hoặc theo mặc định hoặc thiết lập bởi bạn ở nơi khác) ... chơi với GtkLabels luôn luôn vui vẻ xx – andlabs