set_pattern() is the method for underlining text in GtkLabel. It needs to be defined as a pattern, e.g. if your text consists of A B C, then "_ _" will underline A and C but not B, as that is where the space falls. Each underscore or space in the pattern maps directly to the character position in the label text.
$label->set_pattern("_ _");
Call this method with no parameters to erase existing underlines.