I have tried the approach where I built a set of RadioButtons and
enclose it in a StaticBox, hiding the dummy button. It works well in
most situation. But there is a catch with building your own Radio
group this way - if you use keyboard to tab to the radio buttons, have
a preceeding multi-line text control, and there is already a radio
button selected earlier, it won't tab to it; but instead will tab to
the first visible RadioButton - i.e. it will change the value.
I have posted the code and the problem in this forum earlier. You can
look it up.
http://groups.google.com/group/wxpython-users/browse_thread/thread/396f3e91e3694618/307112045a412eac?hl=en#307112045a412eac
I think the idea of having no default button is useful from a data
integrity point of view - the idea being that if there is a pre-
selected value, the user may forget to change it and thus submit an
incorrect value. This is discussed in some groups on how to ensure
accurate data collection. Having no default value is to ensure that
the user makes a selection before the submission is valid - otherwise
the system should reject - stating that a value must be chosen.
It is true that the same result can be achieved by creating a button
that says "None" or "No value selected yet", etc, but it doesn't look
as nice to the end user; and in some cases may be confusing; e.g. if
there are several different choices that requires radio buttons.
Firstly, it is very ugly, there will be an extra button for each
choice, which is of no use except at the beginning, before selection
i.e. you may want to hide it if the same form is being updated at a
later time.
Secondly, the word to use for nothing selected yet can be difficult or
confusing. For example, if we choose "None", and in one of the choices
"None" actually has a meaning, then it is a problem. Ditto if "Not
selected" has a meaning...
For example:
How many of your cars are purple in colour? (a) None (b) None (c) < 2
(d) > 2.
Have you selected a car? (a) Not yet selected (b) Not yet selected
(c) Selected.
So we may end up having to use different words to describe "None" in
different choices - not too good. I thought of using ?, which is least
likely to have confusion, and seems to make the point visually, but it
is not too nice either.
The most elegant way to show 'Not selected' seems to be simply having
none of the radio buttons selected. It is intuitive. HTML allows this,
I think. To be able to do this while having full control of the
appearance may require building a custom control.