在GTK 3中,人们可以设置自己的主题.甚至默认主题(Adwaita)也提供两种变体:浅色和暗色.当我正在编写自己的小部件(在python中)时,我需要获取这些颜色以避免在黑色或白色上绘制黑色.
如何访问用户GTK主题的默认颜色?
GtkSettings
用于提供可接受的gtk-theme-color
属性,但它不再存在,并且在文档中没有引用来解释如何替换它.因为原始的颜色在某处.原则上,我没有看到为什么我应该被迫间接访问它.
而且,如果因为你敢在某处删除单个标签而导致程序崩溃,你会如何反应?如果改变单个标签的颜色实际上改变了其他完全不相关的小部件的颜色,你会如何反应?
我不想要这种惊喜.
据我所知,Range
基于any的小部件的行为是由一个定义的Adjustements
。
由于似乎没有官方方法将范围限制为几个离散值,因此我尝试了很多方法来实际重置这些值。
有效但不是最优的方法是简单地获取当前值并确定哪个有效离散值与该连续值最接近并使用它。
但我想要的是在视觉上将滑块冻结到其当前位置,直到用户将其抓住足够远,然后立即将其值更改为下一个有效值。
我希望用户理解并感觉到这些是离散值。我上面的工作解决方案的问题是测试该程序的 3 个用户告诉我应该在我显示的数字中放入更多数字,认为变化是连续的。
注意:通过“官方”,我的意思是“隐藏”选项或类的子Adjustements
类(如果有的话)。如果没有,任何合理有效的方式来实现这样的要求(即不使用 50% 的 CPU 来实现一个简单的滑块!)。特别是,我不是要求“终极最佳方式”来做到这一点。