制作一个GtkButton轮

时间:2010-11-18 07:00:38

标签: gtk

如何让GtkBtton圆形?

2 个答案:

答案 0 :(得分:1)

接受的答案说:

  

基本集中没有圆度选项。

嗯,现在有了!

https://developer.gnome.org/gtk3/stable/GtkButton.html

  

在特殊情况下,可以通过添加.circular样式类来使按钮成为圆形。

所以,例如:

gtk_style_context_add_class(
    gtk_widget_get_style_context( GTK_WIDGET(button) ),
    "circular"
);

这可以使用标准主题Adwaita和HighContrast。

但是存在一个问题:对于没有设置expand属性或者没有手动升迁的按钮,这只能令人满意。我不知道是否可以使用GtkButton具有expand尺寸的circular,就像我想要的放大按钮一样,我会得到圆角但是平坦的区域在两侧。 :/我的猜测是开发人员没有想到或关心......支持具有{{1}}样式类的大按钮。也许我会在IRC上询问。

更新:这是修补的,因此曲率现在一直延伸,而不是平坦的段。如果你得到非正方形的尺寸,你仍会得到椭圆形而不是圆形,但它们会一直弯曲。

答案 1 :(得分:0)

有几个选择。

  • 调整风格。基本集中没有圆度选项。一些主题引擎可能提供边框图像规范或圆度,但它无处不在。
  • 强制显示您想要的主题。这只是加载一个指定所需主题的gtkrc字符串并不太难。您需要确保用户拥有主题或者可以使用后备。
  • 对按钮进行子类化并自己绘制。一种方法是将边框和浮雕设置为0,打包图像,并响应状态更改事件以使用适当的预照明(悬停)图像。另一种方法是重写expose事件并按照你的意愿绘制按钮。