Я пытаюсь создать виджет GTK, как показано на следующих изображениях.
Можно ли создать его в GTK+ под C, пробовал через GtkExpander, но не получается...
Может ли кто-нибудь помочь ....
Я пытаюсь создать виджет GTK, как показано на следующих изображениях.
Можно ли создать его в GTK+ под C, пробовал через GtkExpander, но не получается...
Может ли кто-нибудь помочь ....
Если вы хотите дублировать внешний вид, то есть два очень неэффективных решения проблемы:
GtkDrawingArea
и используйте Cairo, чтобы нарисовать именно то, что вам нужно. Однако тогда вы будете предоставлены сами себе, поэтому вам придется писать все алгоритмы размещения виджетов, кнопки, расширители, меню и многое другое с нуля.GTK на самом деле не предназначен для такого рода вещей. Весь смысл GTK заключается в том, что вы разрабатываете свой пользовательский интерфейс со стандартными виджетами, и они просто работают с любой темой, языком или технологиями специальных возможностей, которые нужны вашим пользователям. Если вы создаете свой собственный внешний вид и нет возможности его изменить, то человек с дальтонизмом или плохим зрением не сможет его использовать. Или текст будет смещен, если кто-то использует ваше приложение на другом языке. Или, по крайней мере, может быть, кому-то просто нравится черный рабочий стол с белыми буквами, и ваше приложение будет выделяться и выглядеть очень уродливо на компьютере этого пользователя. Если вам действительно нужно, чтобы это выглядело именно так, то, вероятно, GTK вам не подходит.
Разобрать стрелу совсем несложно. Просто добавьте следующий код к вам $HOME/.gtkrc-2.0
(или создайте его, если он не найден):
style "pradeep" {
GtkExpander::expander-size = 0
GtkExpander::expander-spacing = 0
}
widget "*.GtkExpander" style "pradeep"
Это делается путем настройки внешнего вида с помощью файлов ресурсов. . Вы можете получить тот же результат программно, изменив свойства стиля GtkExpander.
Кроме того, вы можете подключить свой собственный обратный вызов к его сигналу «активировать» и переключать цвет фона виджета, когда он активен или нет. И многое другое...
Просто помните, что кому-то нравится иметь последовательный пользовательский интерфейс.