Добрый день.
Я только учу C++, но думал, что между инициализацией объекта в виде переменной или указателя не имеет отличий.
На деле, у меня не получается работать с виджетами инициализированными переменной.
К примеру, в приложение ниже будет показана только кнопка с надписью Text2.
Неужели есть разница как инициализировать? Или я просто допустил ошибку?
main.cpp
#include <QApplication>
#include "testwindow.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    TestWindow win;
    win.show();
    return a.exec();
}
testwindow.h
#ifndef TESTWINDOW_H
#define TESTWINDOW_H
#include <QWidget>
class TestWindow : public QWidget
{
    Q_OBJECT
public:
    explicit TestWindow(QWidget *parent = 0);
};
#endif // TESTWINDOW_H
testwindow.cpp
#include <QtGui>
#include "testwindow.h"
#include <typeinfo>
// для вывода
#define PRINT_NAME(x) qDebug() << #x << " - " << typeid(x).name() << " - " << x
TestWindow::TestWindow(QWidget *parent) :
    QWidget(parent)
{
    QHBoxLayout *mainLayout = new QHBoxLayout;
    QPushButton pushButtonExample("Text");
    QPushButton *pushButtonExample2 = new QPushButton("Text2");
    PRINT_NAME(&pushButtonExample);
    PRINT_NAME(pushButtonExample2);
    mainLayout->addWidget(&pushButtonExample);
    mainLayout->addWidget(pushButtonExample2);
    setLayout(mainLayout);
}
вывод
&pushButtonExample  -  P11QPushButton  -  QPushButton(0xbfc7d240) 
pushButtonExample2  -  P11QPushButton  -  QPushButton(0x9a60b58)