Gtk小部件的CSS样式不工作(Python,Gtk4)?

g6ll5ycj  于 2023-03-05  发布在  Python
关注(0)|答案(1)|浏览(169)

在我的应用中,我希望用户可以拥有某种类型的个人资料图片。起初我想使用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 器解决了这个问题。将图像设置为其子图像。

f8rj6qna

f8rj6qna1#

我刚刚在ruby-gtk中测试了这个,下面的图片是结果:

我使用的CSS就是这样的:

image {
  border: 50px solid black;
  border-radius: 50%;
}

那至少应该显示一个圆。
您是否应用了CSS?GtkImage已过时。
如果你稍微修改一下你的代码,其他人可以快速地复制/粘贴它,对我来说,把它放在ruby-gtk 3的自动生成器中比放在python-gtk缺少的部分中更容易。
编辑:实际上我只是注意到你指的是gtk 4,gtk 4很古怪。
在gtk 3上,它的工作虽然。

相关问题