gpt4 book ai didi

gtk3 - GTK+3.0 - Treeview/ScrolledWindow 上的滚动条 - 控制滚动条的 CSS 属性

转载 作者:行者123 更新时间:2023-12-02 01:01:19 25 4
gpt4 key购买 nike

在 GTK+3.0 (3.22.30) 上开发,X11 上的 openbox,Ubuntu 18.04 服务器。

我一直在努力寻找 CSS 模型来控制 GtkTreeView ScrolledWindow 上滚动条的外观。我的成功非常有限。我唯一能够控制的是点击/移动时 slider 的颜色和槽的背景颜色。其他属性似乎没有任何影响。我发现不支持槽的颜色属性,似乎会导致解析错误。

该应用程序使用触摸屏,因此我需要滚动条始终显示,而不仅仅是当光标指针悬停在控件上时。触摸应用程序中没有光标指针。

我在下面尝试了这些 CSS 定义。其中一些只是实验性的,试图让一些东西发挥作用。我试过移动宽度、最小宽度和“has-xx-stepper”,但它们似乎没有任何效果。我仍然坚持使用相同的简单默认 slider ,但有一些基本的颜色控制。我无法解释如何引用滚动条的 CSS 节点模型,因为我找不到示例。

scrollbar {
has-backwards-stepper: true;
has-forward-stepper: true;
has-secondary-backward-stepper: true;
has-secondary-forward-stepper: true;
min-width: 80;
}

trough {
background-color: #00ee00;
}

slider {
color: #00FF00;
slider-width: 80;
min-width: 80;
has-backwards-stepper: true;
has-forward-stepper: true;
}

使用 GTK+ 检查器(允许检查 Gtk 应用程序的 CSS 属性)我找不到 GTK3 GtkScrollbar 文档中引用的“has-backwards-stepper”和其他属性。这是测试 CSS 语法的便利位置,但我不知道如何根据需要控制外观。

我应该使用什么语法来获取步进按钮、固定宽度并让它始终显示?指向解释这一点的文档的指针会有所帮助。我已经详尽地阅读了 GTK 3 CSS 概述,这对这里没有帮助。

最佳答案

我能够确定 has-xxxx-stepper 属性似乎是只读的,但实际上并没有连接到任何我可以更改的东西。

我能够使用“overlay-scrolling”属性让滚动条出现在滚动窗口的右侧。

sw = gtk_scrolled_window_new(NULL, NULL);
gtk_container_set_border_width( GTK_CONTAINER(sw), 0 );
gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(sw), TK_POLICY_NEVER, GTK_POLICY_ALWAYS ); //scroll bars
//Set scrollbar to ALWAYS be displayed and not as temporary overlay
g_object_set( sw , "overlay-scrolling", FALSE , NULL);

我可以用这个进一步控制滚动条槽的宽度:

GtkWidget * ptrVscrollBar = gtk_scrolled_window_get_vscrollbar ( TK_SCROLLED_WINDOW(sw) );    
g_object_set( ptrVscrollBar ,
"width-request", 30 ,
"margin-bottom", 30 ,
"margin-top", 30 ,
NULL);

更新:我发现 slider 的 CSS 语法略有不同。通过一些实验,我能够覆盖 slider 组件的宽度和高度。这些属性值需要 px 单位,如果没有它们,它们将被忽略。

slider {
min-width: 28px;
min-height: 80px;
}

我还没有想出如何使步进按钮出现。这些现在必须用 GTK3 手动/单独创建吗?我有一些使用滚动窗口的 vadjustment 对象属性的原型(prototype)代码,但是要连接我拥有的每个滚动条是多么痛苦。

关于gtk3 - GTK+3.0 - Treeview/ScrolledWindow 上的滚动条 - 控制滚动条的 CSS 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com