如何在 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}')
我想在 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}')