extending beyond the page width
Well, first off, you should probably decide on a page width and stick to it. Use auto line wrapping from your editor, if you want. Reading code that's greater than your window size is really difficult, especially for your coworkers using vi or emacs from terminals. Pick a page width and stick to it- this means wrapping these initializer lists onto multiple (possibly many) lines.
Do you try and break down such classes?
20 is a lot of parameters, it probably deserves to be broken up. "God classes" and generally a code smell and indicate a refactoring is necessary.
It doesn't automatically mean you should break things up, there are always exceptions to guidelines. But, definitely consider it as an option.
When you declare them in the header file, do you (or could you) group them with comments? For example: // These next few parameters are for file IO
and // These next parameters are for the widget
, that will provide you a good template for which objects are looking to be abstracted.
Overall really large classes indicate a lot of complicated state, and complicated state tends to cause bugs. You should, like with functions, prefer to keep them small and focused.
{Your example code}
I think is quite readable and "tidy", although it will probably be pretty long list. As I mentioned, to combat this, I'd consider breaking it up into smaller classes.