2013-05-07 3 views
2

Я пытаюсь создать закругленную кнопку, вызвав внешний файл CSS в моем приложении на C++.GTK и 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: Я ушел из определения цвета, чтобы держать его короче.

ответ

1

Я бег Debian свистящих (в настоящее время тестирования), после установки GTK UNICO двигателя (APT-получить установку GTK3-двигатели-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)); 
} 
+0

use border-image: none, чтобы заставить его работать :) –

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" 
); 

Это работает с использованием как стандартных тем, Адвайте и HighContrast.

Для кнопок, где одно измерение больше другого, только углы будут округлены до радиуса более короткого размера, а остальная часть кнопки будет плоской (т. Е. Вы получите закругленный прямоугольник, а не овал).

+1

@downvoter: У вас есть реальная проблема, которую вы могли бы рассказать мне, и я мог бы учиться, или вы просто обитаете на какую-то детскую злобу, которую вы создали в каком-то другом нить? –

Смежные вопросы