Я пытаюсь создать приложение с использованием GTK и стилизовать его с помощью CSS.Мне нужно изменить фон кнопки при нажатии.Мне это нужно для встроенного видеоплеера.Когда я нажимаю «воспроизведение», я хочу отметить, что видео воспроизводится, изменяя фон кнопки «воспроизведение», когда я нажимаю «пауза», я хочу кнопку «воспроизведение», чтобы вернуться к значению по умолчанию, и кнопку «пауза», чтобы изменить фон.При нажатии «Стоп» оба фона должны вернуться в состояние по умолчанию.Каков наилучший способ сделать такое поведение?
Я нашел функцию gtk_widget_override_background_color
, но она устарела с версии 3.16 и не должна использоваться во вновь создаваемом коде.Я также пробовал button:focus
в css, но он работает неправильно.Он изменяет цвет фона при нажатии, но когда я нажимаю кнопку, которая не должна влиять на фон (например, изменение громкости), фон меняется на значение по умолчанию.
РЕДАКТИРОВАТЬ.Я мог бы задать вопрос, вводя в заблуждение.button:focus
работает как задумано, но не полностью соответствует моим потребностям.Позвольте мне объяснить на примере: 1. В начале (после выбора видео) у меня есть пустой экран с сообщением «нажмите play»
Теперь я нажимаю кнопку воспроизведения.Кнопка воспроизведения добавила в CSS код фокуса из C:
gtk_widget_set_name(GTK_WIDGET(play_button), "play_button_1");
И в CSS:
button#play_button_1:focus {
background-color: #67181B;
}
Поэтому, когда я нажимаю "Playигрок выглядит вот так:
Работает нормально, пока я не использую только кнопки «воспроизведение», «пауза» и «стоп».Но когда я нажимаю «+» или «-» (для регулировки громкости), кнопка «проигрывать» теряет фокус, и это выглядит так (видео все еще воспроизводится, на изображении нет фокуса на кнопке «-», это зависаниеНа снимке экрана нет курсора):
Так что я хочу добиться того, чтобы фон «play» менялся во время воспроизведения видео, неважнофокус на других кнопках.Надеюсь, теперь стало намного понятнее