在PythonGTK3中创建带边框的标签比将其放入框架中更容易吗?
我的意思是,我可以定义一个样式或其他东西,并将其应用于程序中的所有标签吗? 我有很多标签在里面,我不想打那么多。在PythonGTK3中创建带边框的标签比将其放入框架中更容易吗?,python,label,border,gtk3,Python,Label,Border,Gtk3,我的意思是,我可以定义一个样式或其他东西,并将其应用于程序中的所有标签吗? 我有很多标签在里面,我不想打那么多。 我听说过Pango样式,但我能一次将它应用到所有标签小部件吗?术语:很多标签是相对的。我们说的是14岁还是84岁?如果接近84,您可能应该使用Glade创建界面,然后设置帧x-pad和y-pad属性。使用CSS for gtk3,您必须在框架中为边距、填充或其任何变体(边距顶部、填充底部)打包任何标签才能工作 GtkFrame是GtkMisc的子级。GtkMisc具有gtk_misc
我听说过Pango样式,但我能一次将它应用到所有标签小部件吗?术语:很多标签是相对的。我们说的是14岁还是84岁?如果接近84,您可能应该使用Glade创建界面,然后设置帧x-pad和y-pad属性。使用CSS for gtk3,您必须在框架中为边距、填充或其任何变体(边距顶部、填充底部)打包任何标签才能工作 GtkFrame是GtkMisc的子级。GtkMisc具有gtk_misc_set_padding功能。您可以在标签上使用该功能,而无需将标签打包到框架中。但您必须为每个标签设置它 我不知道Python只有C和一些C++,但是你可以做这样的事情:< /P> 1为从label0开始的所有标签创建枚举。我想是用python命名的 我说使用枚举的原因是,如果没有它们,以后将很难跟踪所有标签 2创建一个指向GtkWidget的指针数组,每个标签一个指针 3使用指向以枚举为索引的GtkWidget的指针创建标签。 这里才是真正需要枚举的地方 4创建一个带有gtk_misc_set_填充的for循环。使用GtkWidget数组作为gtk_misc_set_padding中的参数。循环遍历每个标签,设置其填充 我可以提供一个例子,但如果你不知道C,它可能不会有用。如果你仍然喜欢它,请告诉我。你可以 add_provider只需运行一次,但在实现小部件后,将添加到哪个小部件并不重要
#!/usr/bin/env python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
def add_provider(widget):
screen = widget.get_screen()
style = widget.get_style_context()
provider = Gtk.CssProvider()
provider.load_from_data('label {\
border: 1px solid #000000;\
margin: 2px;\
}'.encode('utf-8'))
style.add_provider_for_screen(screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_USER)
window = Gtk.Window()
label = Gtk.Label()
label2 = Gtk.Label()
box = Gtk.VBox()
box.add(label)
box.add(label2)
window.add(box)
label.set_label("asd1")
label2.set_label("asd2")
window.connect("realize", add_provider)
window.connect("delete-event", Gtk.main_quit)
window.show_all()
Gtk.main()