Como digitar somente numeros no GtkEntry

Explicação

Existe um sinal insert-text que é disparado assim que um texto é inserido no GtkEntry. Em seu callback é possível buscar o texto digitado e enviar o cancelamento do sinal com stop_emission(). É conectado o GtkEntry ao sinal insert-text. Em seu callback busca-se o caractere digitado. Verifica se o char é um numero. Caso não for, cancela a inserção com o método stop_emission();

Solução

Conectar o GtkEntry ao evento insert-text;
Fazer a verificação se o texto digitado é numérico;
Caso não for parar o sinal com o método stop_emission() do GtkObject.

Exemplo

widgets['txtTeste'] = new GtkEntry();
			$this->widgets['txtTeste']->set_size_request(100, 25);
			$fixed->put($this->widgets['txtTeste'], 8, 8);
			
			// Conecta o entry ao evento 
			$this->widgets['txtTeste']->connect("insert-text", array($this, "txtText_onInsert"));
			
			// Cria a janela
			$this->widgets['frmTeste'] = new GtkWindow();
			$this->widgets['frmTeste']->set_size_request(116, 66);
			$this->widgets['frmTeste']->set_resizable(FALSE);
			$this->widgets['frmTeste']->set_title("Teste");
			$this->widgets['frmTeste']->add($fixed);
			$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")
			);
		}
		
		// Método onInsert do txtEntry
		public function txtText_onInsert($widget, $text, $len, $position)
		{
			$char = substr($text, 0, $len);
			if((!preg_match("/[0-9]/", $char)) And ($char != ","))
			{
				 $widget->emit_stop_by_name("insert-text");
				 return TRUE;
			}
			return FALSE;
		}
	}

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

Referências

http://gtk.php.net/manual/en/gobject.method.stop_emission.php
http://gtk.php.net/manual/en/gtk.gtkeditable.signal.insert-text.php