GTK和CSS:圆形按钮

时间:2013-05-07 14:25:35

标签: c++ css gtk

我试图通过在我的C ++应用程序中调用外部CSS文件来创建一个圆角按钮。

我设法得到一个圆形按钮,但仍留有一些矩形边框,我找不到如何摆脱那个边界。

CSS文件的内容:

GtkButton  {
    -GtkWidget-focus-line-width: 1px; 
    border-width: 1px;
    border-radius: 30px;
    background-image: -gtk-gradient (linear,
        left top,
        left bottom,
        from (@win_bg),
        color-stop (0.5, @win_dark),
        to (@win_bg));
}

PS:我省略了颜色定义,以缩短它。

2 个答案:

答案 0 :(得分:1)

我正在运行Debian Wheezy(目前正在测试),安装了gtk unico引擎(apt-get install gtk3-engines-unico)并修改了我的css工作(矩形边框消失了)

GtkButton  {
    engine: unico;
    -GtkWidget-focus-line-width: 1px; 
    border-width: 1px;
    border-radius: 30px;
    background-image: -gtk-gradient (linear,
        left top,
        left bottom,
        from (@win_bg),
        color-stop (0.5, @win_dark),
        to (@win_bg));
}

答案 1 :(得分:1)

手动CSS hackery现在可能(有趣,但是!)不必要,至少对于定位标准主题的用户(或者更确切地说, 那些,因为我们应该始终将它们用作我们的基线):

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。

对于一个尺寸比另一个尺寸长的按钮,只有角落会被舍入到较短尺寸的半径,而按钮的其余部分将是平的(即,您将得到一个圆角矩形,而不是椭圆形)。 / p>