0

введите сюда описание изображенияmainwindow.h

#pragma once
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtWidgets>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QVBoxLayout* vbl;
    QPushButton* pb;
private slots:

    void slot1(QVBoxLayout*vbl, QPushButton*pb);
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWidgets>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QPushButton *but_1 = new QPushButton(this);
    QPushButton *but_2 = new QPushButton(this);
    QPushButton *but_3 = new QPushButton(this);
    QVBoxLayout *vbl   = new QVBoxLayout(this);

    but_1->setText("E");
    but_2->setText("D");
    but_3->setText("B");

    vbl->addWidget(but_1);
    vbl->addWidget(but_2);
    vbl->addWidget(but_3);

    QObject::connect(but_1, SIGNAL(clicked()),
                     vbl,   SLOT(slot1(but_2)));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void slot1(QVBoxLayout* vbl, QPushButton* pb) {
   vbl->addWidget(pb);
}

main.cpp

#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

ОШИБКА: введите сюда описание изображения

Pon4iPay
  • 174
  • 2
    А где определение метода slot1? В вашем классе есть только его объявление. void slot1(QVBoxLayout* vbl, QPushButton* pb) { Это не метод класса, вы забыли добавить MainWindow:: перед именем метода. –  Nov 08 '18 at 19:26
  • Сработало, спасибо! P.S.Можете это написать ответом на вопрос и я учту его как решением =) – Pon4iPay Nov 09 '18 at 11:48

0 Answers0