Bir etiket ile bir yeniden boyutlandırılamayan iletişim kutusu oluşturmaya çalışıyorum. Bu etiket çok fazla metin içeriyor, bu nedenle numaralı iletişim kutusunu rahatlıkla kullanmadan sargıya sarmak istiyorum.GTK Bir iletişimde etiketleme etiketi
Bazı nedenlerden dolayı, bunun gerçekleşmesine izin vermek için GTK'nın ne alacağını öğrenemiyorum. Diyalogda maksimum genişlik ayarlamanın bir yolunu bile bulamıyorum, bu harika olurdu. İşte
ne demek istediğimi bir çalışan örnek: dolgu kullanılarak, bir Gtk.Table içindeki Gtk.Label koyarak (True olarak çizgi wrap ayarı dışında)
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from gi.repository import Gtk
class DialogExample(Gtk.Dialog):
def __init__(self, parent):
Gtk.Dialog.__init__(self, "My Dialog", parent, 0,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OK, Gtk.ResponseType.OK))
self.set_default_size(150, 100)
self.set_resizable(False)
label = Gtk.Label("This is a dialog to display additional information, with a bunch of text in it just to make sure it will wrap enough for demonstration purposes")
label.set_line_wrap(True)
box = self.get_content_area()
box.add(label)
self.show_all()
class DialogWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Dialog Example")
self.set_default_size(250, 200)
button = Gtk.Button("Open dialog")
button.connect("clicked", self.on_button_clicked)
self.add(button)
def on_button_clicked(self, widget):
dialog = DialogExample(self)
response = dialog.run()
if response == Gtk.ResponseType.OK:
print "The OK button was clicked"
elif response == Gtk.ResponseType.CANCEL:
print "The Cancel button was clicked"
dialog.destroy()
win = DialogWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
Sorunun ne fark biraz gömüyorduk. Pencereyi/iletişim kutusunu oluşturduğunuzda ve bu etiket ilk kez bir üst boyut referansı içermediğinde gösterildiğinden, Gtk etikete olabildiğince fazla alan atar ve ardından ana genişliğini ayarlar. büyük pencere. Bu davranışı önlemek için, ebeveyn için tercih edilen genişliği ayarlayın ve bir gösteri yapın, bu şekilde Gtk ebeveynlerin geometrisini hesaplar ve etiket ebeveynin boyutuna gerçek bir başvuruda bulunacaktır. Ben bu şekilde yaptım ve şimdi her şey bir çekicilik gibi çalışıyor. – satanas
hi @satanas - Ebeveyn için tercih edilen genişliği nasıl ayarlayacağınızı ve bir şov yapmayı nasıl yapacağınızı biraz daha açıklayabilirsiniz? Aynı konuya sahibim; gtk.Table seçeneği v3.4'ten beri kullanımdan kaldırıldı, bu yüzden kullanım dışı bir çözüm arıyorum. TIA – fossfreedom