2

我正在尝试通过在我的 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:我省略了颜色定义以使其更短。

4

2 回答 2

2

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

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));
}
于 2013-05-08T02:10:27.560 回答
1

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

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。

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

于 2016-08-20T10:27:56.323 回答