在我的应用中,我希望用户可以拥有某种类型的个人资料图片。起初我想使用libadwaita的Avatar小工具,但它不能从文件中加载图片,这是我需要的功能。所以我想我应该实现一个普通的Gtk.Image
,并将其border-radius
设置为50%
。然而,GTK似乎忽略了我的CSS规则。图像显示出来了,但是没有边框半径。下面是我的代码:
# in my class MainWindow(Adw.ApplicationWindow)
css_provider = Gtk.CssProvider()
css_provider.load_from_path("style.css")
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(),
css_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
img = Gtk.Image.new_from_file("some_image.jpg")
img.set_pixel_size(100)
self.some_box.append(img)
我的风格代码.css:
image { /* I also tried 'GtkImage' and a custom class */
border: 4px solid #000;
}
EDIT:使用Gtk.Frame作为 Package 器解决了这个问题。将图像设置为其子图像。
1条答案
按热度按时间f8rj6qna1#
我刚刚在ruby-gtk中测试了这个,下面的图片是结果:
我使用的CSS就是这样的:
那至少应该显示一个圆。
您是否应用了CSS?GtkImage已过时。
如果你稍微修改一下你的代码,其他人可以快速地复制/粘贴它,对我来说,把它放在ruby-gtk 3的自动生成器中比放在python-gtk缺少的部分中更容易。
编辑:实际上我只是注意到你指的是gtk 4,gtk 4很古怪。
在gtk 3上,它的工作虽然。