Implementing widgets within a main window
While there is no hard and fast rule, it seems to make code more readable and modular (i.e., Pythonic) to have a separate class for something that is effectively a new Qt widget. This is especially true if there is any chance that new widget might be something you want to break out and use in another project.

See the example labelledwidgets.py from Chapter 11 of Summerfield's book.