I am using that method for a large Qt based application and I see no reason to change that.
The main window class has code for the 'actions' in one implementation file because otherwise the implementation file for that class would be too big. mainwindow.cpp and mainwindow_actions.cpp as far as I remember.
The good thing with that approach is that it keeps you from doing overly clever things like multiple inheritance or template voodoo - all the stuff that programmers love to do - and just keep things simple.
The mainwindow class also has one or two more additional implementation files IIRC. It just keeps things tidy.
I could have created more objects to make it cleaner, but that would incur a runtime overhead (which isn't worth it, IMO).
The application as a whole is pretty modular, though.