小编Joh*_*hnW的帖子

如何获得GTK中的默认颜色?

上下文

在GTK 3中,人们可以设置自己的主题.甚至默认主题(Adwaita)也提供两种变体:浅色和暗色.当我正在编写自己的小部件(在python中)时,我需要获取这些颜色以避免在黑色或白色上绘制黑色.

如何访问用户GTK主题的默认颜色?


事情工作

  • GtkSettings 用于提供可接受的gtk-theme-color属性,但它不再存在,并且在文档中没有引用来解释如何替换它.
  • 我不想从另一个小部件中获取该颜色:
    • 是没用的:PyGTK不适用于Python/GTK 3,而且需要另一个小部件.
    • 会更好(PyGObject至少是基于)但是再次,thar需要我从另一个小部件复制样式.

为什么我不想从另一个小部件复制样式?

因为原始的颜色在某处.原则上,我没有看到为什么我应该被迫间接访问它.

而且,如果因为你敢在某处删除单个标签而导致程序崩溃,你会如何反应?如果改变单个标签的颜色实际上改变了其他完全不相关的小部件的颜色,你会如何反应?

我不想要这种惊喜.

python gtk pygobject python-3.x gtk3

9
推荐指数
2
解决办法
773
查看次数

有没有官方方法可以在 GTK 中创建离散值范围小部件?

据我所知,Range基于any的小部件的行为是由一个定义的Adjustements

由于似乎没有官方方法将范围限制为几个离散值,因此我尝试了很多方法来实际重置这些值。

有效但不是最优的方法是简单地获取当前值并确定哪个有效离散值与该连续值最接近并使用它。

但我想要的是在视觉上将滑块冻结到其当前位置,直到用户将其抓住足够远,然后立即将其值更改为下一个有效值。

我希望用户理解并感觉到这些是离散值。我上面的工作解决方案的问题是测试该程序的 3 个用户告诉我应该在我显示的数字中放入更多数字,认为变化是连续的。

注意:通过“官方”,我的意思是“隐藏”选项或类的子Adjustements类(如果有的话)。如果没有,任何合理有效的方式来实现这样的要求(即不使用 50% 的 CPU 来实现一个简单的滑块!)。特别是,我不是要求“终极最佳方式”来做到这一点。

python gtk gobject python-3.x gtk3

4
推荐指数
1
解决办法
497
查看次数

标签 统计

gtk ×2

gtk3 ×2

python ×2

python-3.x ×2

gobject ×1

pygobject ×1