Я не думаю, что это правда, что второй вариант не поддерживает пользовательские слоты.
Выбор обсуждается в официальной документации Qt.См. http://doc.qt.io/qt-4.8/designer-using-a-ui-file.html#compile-time-form-processing
Однако обратите внимание, что три подхода, представленные в этом документе, не соответствуют трем вариантам, представленным в Qt Creator.Первый подход, представленный в документе, «Прямой подход», здесь не является одним из трех вариантов - этот подход недоступен через функцию Qt Creator, которой управляет этот параметр.Второй вариант (агрегация или «подход с единым наследованием») доступен в двух вариантах, при этом небольшое изменение состоит в том, является ли член класса пользовательского интерфейса элементом данных (второй параметр) или элементом указателя (первый параметр).
Я предпочитаю третий вариант - множественное наследование.Этот способ также используется в Программирование на C ++ GUI с использованием Qt 4 (первое издание доступно бесплатно онлайн ), что называет этот подход наиболее чистым.Когда я пишу свой класс, я на самом деле не думаю о двух объектах: один с пользовательским интерфейсом, а другой с функциональностью, я думаю только об одном, и множественное наследование соответствует этому лучше всего.Но в документе приведены причины, по которым «агрегация как элемент указателя» используется по умолчанию.