我想在Quod Libet音乐播放器中开发新功能。
我需要增加特定滚动条的大小。 已经存在将css应用于窗口小部件的功能:
def add_css(widget, css):
"""Add css for the widget, overriding the theme.
Can raise GLib.GError in case the css is invalid
"""
if not isinstance(css, bytes):
css = css.encode("utf-8")
provider = Gtk.CssProvider()
provider.load_from_data(css)
context = widget.get_style_context()
context.add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
所以我尝试将css应用为:
self.scrollwin = sw = ScrolledWindow()
sw.set_shadow_type(Gtk.ShadowType.IN)
#get scrollbar
vscrollbar = sw.get_vscrollbar()
# 1rst attempt
# qltk.add_css(vscrollbar, '* slider {min-width: 20px;}')
#2nd attempt
qltk.add_css(vscrollbar, 'scrollbar.vertical slider {min-width: 20px;}')
我在2次尝试中遇到同样的错误:
'最小宽度'不是有效的属性名称(3)
更新1
我尝试@Herbalist解决方案,滚动条组件调整大小,但"滑块"总是有相同的大小。它在"滑块"的右侧和左侧添加空格。
vscrollbar.set_size_request(50,-1)
是否可以调整滚动条的滑块?
答案 0 :(得分:2)
我无法用css取得成功,所以我使用了弃用的方法:
GtkRange:自版本3.20和版本以来,不推荐使用slider-width 不应该在新编写的代码中使用。
在滑块元素上使用min-height / min-width CSS属性。该 此样式属性的值将被忽略。
这样:
qltk.add_css(vscrollbar, '* {-GtkRange-slider-width:40px}')
答案 1 :(得分:-1)
get_vscrollbar()返回一个Gtk.Widget,以便您可以尝试设置“width-request”属性