Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: arty_57 от Апрель 05, 2011, 18:16



Название: Динамическое создание QWidget
Отправлено: arty_57 от Апрель 05, 2011, 18:16
Суть проблемы. Есть класс Widget.
Код:
class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
    AboutWidget *aboutPWidget;

private:
    Ui::Widget *ui;
При нажатии на кнопку его, должен создаваться aboutPWidget. сам объект создается нормально вроде, а вот вызов метода show вызывает ошибку сегментации памяти. класс AboutWidget унаследован от QWidget
Код:
AboutWidget::AboutWidget(QWidget *parent) :
    QWidget(parent)

{
    statusLabel = new QLabel(tr("This is a test of this widget"));
     testButton = new QPushButton("test");
     buttonBox = new QDialogButtonBox;
     buttonBox->addButton(testButton, QDialogButtonBox::ActionRole);
     QHBoxLayout *topLayout = new QHBoxLayout;
       topLayout->addWidget(statusLabel);
       topLayout->addWidget(buttonBox);
       setLayout(topLayout);

}
вот код создания
Код:
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{

    ui->setupUi(this);

    connect(ui->AboutProgrammButton,SIGNAL(clicked()),this,SLOT(About()));
    AboutWidget *aboutPWidget=new AboutWidget();
   

}
вот код где происходит ошибка
Код:
void Widget::About(){   
   aboutPWidget->show();
}
Причем если вызвать метод show в конструкторе Widget, то срабатывает нормально.


Название: Re: Динамическое создание QWidget
Отправлено: Пантер от Апрель 05, 2011, 18:25
Код
C++ (Qt)
Widget::Widget(QWidget *parent) :
   QWidget(parent),
   ui(new Ui::Widget)
{
 
   ui->setupUi(this);
 
   connect(ui->AboutProgrammButton,SIGNAL(clicked()),this,SLOT(About()));
   aboutPWidget=new AboutWidget();
 
 
}
 


Название: Re: Динамическое создание QWidget
Отправлено: arty_57 от Апрель 05, 2011, 18:41
Блиииин.....а ведь всё так просто....стыд мне и позор...спасибо огромное