Como mudar a cor do fundo de um GtkLabel

Explicação

Um programador sempre necessita estilizar suas aplicações para facilitar a interação com o usuário. O método mais eficaz é a utilização de cores, elas facilitam bastante o usuário a deduzir certas coisas no sistema, como um cadastro bloqueado, o estado do sistema (busca? inserção? edição?). Para este efeito em algum widgets como o GtkLabel, necessitamos da ajuda do GtkEventBox. Com ele conseguimos mais eventos e mais ajustes ao GtkLabel.

Imagem

Captura_de_tela-Teste

Solução

Criar um GtkEventBox() e adiciona-se um GtkLabel();
Mudamos a cor do GtkEventBox().

Exemplo

widgets['evtTeste'] = new GtkEventBox();
			
			// Cria o label
			$this->widgets['lblTeste'] = new GtkLabel("Meu Label");
			$this->widgets['evtTeste']->add($this->widgets['lblTeste']);
			
			// Muda a cor do GtkEventBox
			$this->widgets['evtTeste']->modify_bg(
				Gtk::STATE_NORMAL, 
				GdkColor::parse("#FFD79B")
			);
			
			// Cria um fixed
			$fix = new GtkFixed();
			$fix->put($this->widgets['evtTeste'], 8, 8);
			
			// Cria a janela
			$this->widgets['frmTeste'] = new GtkWindow();
			$this->widgets['frmTeste']->set_size_request(300, 200);
			$this->widgets['frmTeste']->set_resizable(FALSE);
			$this->widgets['frmTeste']->set_title("Teste");
			$this->widgets['frmTeste']->add($fix);
			$this->widgets['frmTeste']->set_position(GTK::WIN_POS_CENTER);
			$this->widgets['frmTeste']->show_all();
			
			// Conecta o destroy
			$this->widgets['frmTeste']->connect_simple(
				"destroy", 
				array("Gtk", "main_quit")
			);
		}
	}

	// Inicia a aplicação
	$teste = new Teste();
	gtk::main();

Referências

http://gtk.php.net/manual/en/gtk.gtkwidget.method.modify_bg.php