Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

396
Vistas
GTK - Problema de color del icono simbólico de la ventana de Python

Tengo una GUI GTK3 llamada por un código Python 3 simple. El icono se encuentra en el directorio /usr/share/icons/hicolor/scalable/actions/ . El color de mi tema actual es oscuro y los íconos se ven blancos. Cuando cambio a blanco, los íconos de la GUI del tema del sistema se vuelven negros. Pero en mi icono de código se ve negro en lugar de blanco cuando el tema oscuro está activado.

Funciona cuando elijo el nombre del icono ( icon-symbolic ) del programa Glade y guardo el archivo de la interfaz de usuario. El archivo de icono es un simple archivo .svg cuadrado negro (dibujado en Inkscape).

¿Cuál es la solución para eso?

 OS: Debian-like Linux, Python 3, GTK 3.24

Código Python simple:

 import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GdkPixbuf builder = Gtk.Builder() builder.add_from_file('test.ui') window1 = builder.get_object('window1') button1 = builder.get_object('button1') class Signals: def on_window1_destroy(self, widget): Gtk.main_quit() builder.connect_signals(Signals()) window1.set_icon_name("icon-symbolic") window1.show_all() Gtk.main()

Archivo de interfaz de usuario simple:

 <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.38.2 --> <interface> <requires lib="gtk+" version="3.20"/> <object class="GtkWindow" id="window1"> <property name="can-focus">False</property> <property name="default-width">300</property> <property name="default-height">300</property> <child> <!-- n-columns=1 n-rows=1 --> <object class="GtkGrid"> <property name="visible">True</property> <property name="can-focus">False</property> <child> <object class="GtkButton" id="button1"> <property name="label" translatable="yes">Button 1</property> <property name="visible">True</property> <property name="can-focus">True</property> <property name="receives-default">True</property> </object> <packing> <property name="left-attach">0</property> <property name="top-attach">0</property> </packing> </child> </object> </child> </object> </interface>
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Encontré una solución para cambiar automáticamente el color del icono en la barra de título de la ventana. Gtk.HeaderBar en lugar de la barra de título de la ventana predeterminada y agregué una Gtk.Image (su nombre es image_headerbar ) a la izquierda de la barra de encabezado. Finalmente, configuré el ícono de la imagen usando el siguiente código y funcionó:

image_headerbar.set_from_icon_name("icon-symbolic", -1)

El color del ícono cambia a oscuro/blanco automáticamente cuando el tema del sistema cambia a blanco/oscuro.

He probado varios métodos para cambiar dinámicamente el color del icono en la barra de título de la ventana. Pero ninguno de ellos funcionó si no se usa Gtk.HeaderBar .

Pero la altura de la barra de título de la ventana es un poco más grande que las barras de título de ventana predeterminadas cuando se usa Gtk.HeaderBar (probado en el entorno de escritorio XFCE).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda