如何在 GtkScrollbar 上设置最小宽度?

How to set min width on GtkScrollbar?

我想在 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 次都遇到了同样的错误:

'min-width' is not a valid property name (3)

更新 1

我尝试@Herbalist 解决方案,滚动条组件的大小已调整,但 "slider" 始终具有相同的大小。它在 "slider".

的左右添加空格
vscrollbar.set_size_request(50,-1)

是否可以调整滚动条滑块的大小?

结果截图(我用绿色勾勒出部分滚动条):

get_vscrollbar() returns a Gtk.Widget 所以你可以尝试设置 "width-request" 属性

我无法成功使用 css,所以我使用了已弃用的方法:

GtkRange:slider-width has been deprecated since version 3.20 and should not be used in newly-written code.

Use the min-height/min-width CSS properties on the slider element. The value of this style property is ignored.

像这样:

qltk.add_css(vscrollbar, '* {-GtkRange-slider-width:40px}')