Witam napisałem taki trochę pogmatwany kod, nie wiem co zrobiłem źle i jak to wgl ma działać może ktoś mnie olśni? Chcę tworzyć folder no taki zwykły pushbutton z ikonką tam potem do niego dodam inne rzeczy ale ogólnie chce go tworzyć przez przycisk i jak go zrobie to on wskakuje do layoutu z labelem (jego nazwą) i potem tak kolejny i kolejny...
tylko że wywala program po kliknięciu btnadd
void Protocols::on_btnadd_clicked()
{
Folder *fold = new Folder;
lay->addLayout(fold->getFolder(),0,0);
}
Protocols::Protocols(QWidget *parent) :
QDialog(parent),
ui(new Ui::Protocols)
{
ui->setupUi(this);
//.................
ui->scrollArea->setWidget(ui->scrollgrid);
lay = new QGridLayout;
ui->scrollgrid->setLayout(lay);
#include "folder.h"
Folder::Folder(QObject *parent, QString name)
{
folderbtn = new QPushButton;
folderbtn->setIcon(QIcon(":/images/images/folder.jpg"));
folderbtn->setMaximumSize(120,120);
folderbtn->setMinimumSize(120,120);
folderlbl->setAlignment(Qt::Alignment(Qt::AlignHCenter));
folderlbl->setText(name);
layout = new QVBoxLayout;
layout->addWidget(folderbtn);
layout->addWidget(folderlbl);
setLayout(layout);
}
QLayout* Folder::getFolder()
{
return layout;
}
#include <QtCore>
#include <QWidget>
#ifndef FOLDER_H
#define FOLDER_H
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
class Folder : public QWidget
{
public:
explicit Folder(QObject *parent = nullptr, QString name= "");
QLayout *getFolder();
signals:
public slots:
protected:
QPushButton *folderbtn;
QLabel *folderlbl;
QVBoxLayout *layout;
};
#endif // FOLDER_H