Gtk 小部件的 CSS 样式不起作用(Python、Gtk4?

问题描述 投票:0回答:1

在我的应用程序中,我想要某种用户可以拥有的个人资料图片。一开始想用libadwaita的Avatar widget,但是不能从文件中加载图片,这正是我需要的功能。所以我想我会实现一个普通的

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)

我的 style.css 代码:

image { /* I also tried 'GtkImage' and a custom class */
    border: 4px solid #000;
}
python css gtk pygtk
1个回答
0
投票

我刚刚在 ruby-gtk 中测试了这个,这里的图像是结果:

___ i.imgur.com/8oqfNIL.png

抱歉,StackOverflow限制新账户; “您需要 10 个信誉才能发布图像链接”。啊。您可能需要复制粘贴上面的链接。奇怪的限制......我猜他们认为现在每个人都必须是机器人。

我使用的 CSS 正是这样的:

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

那至少应该显示一个圆圈。

你应用CSS了吗? GtkImage 已弃用。

如果您稍微调整一下代码以便其他人可以使用,它也可能会有所帮助 快速复制/粘贴它。对我来说,将它放入一个更容易 autogenerate 我用于 ruby-gtk3,而不是输入缺失的 python-gtk 的作品。

编辑:实际上我只是注意到你指的是 gtk4。 gtk4 很奇怪。

在 gtk3 上它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.