set_default_size needs sizes in pixels. I had tried $dialog->set_size_request(500,-1), which worked, sort of. I know the size of my title in characters, but I don't know the width of the font used, so I can only guess at the required width in pixels, hence the 500. If my title is e.g. "No, whatever" I need something that will tell me how many pixels is equivalent to length("No, whatever").
its simple, create a "label" widget using the same "system" font with the sane font size as used for the title, let the size be automatic, then "get" the dimensions of the "label"