No member naemed in Ui::MainWindow. Как исправить?

340
10 апреля 2019, 02:40

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->setupUi(this);
    QPushButton *but_1 = new QPushButton("E");
    QPushButton *but_2 = new QPushButton("D");
    QPushButton *but_3 = new QPushButton("B");
    QVBoxLayout *vbl   = new QVBoxLayout;

    ui->vbl->addWidget(but_1);
    QObject::connect(but_1, SIGNAL(clicked()),
                     vbl,   SLOT(slot1(but_2)));

}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::slot1(QVBoxLayout* vbl, QPushButton* pb) {
   vbl->addWidget(pb);
}

в строке ui->vbl->addWidget(but_1) в mainwindow.cpp выдаёт ошибку:

no member named 'vbl' in Ui::MainWindow

Не знаю что делать 0(

mainwindow.ui:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>439</width>
    <height>338</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralWidget"/>
  <widget class="QMenuBar" name="menuBar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>439</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QToolBar" name="mainToolBar">
   <attribute name="toolBarArea">
    <enum>TopToolBarArea</enum>
   </attribute>
   <attribute name="toolBarBreak">
    <bool>false</bool>
   </attribute>
  </widget>
  <widget class="QStatusBar" name="statusBar"/>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>
Answer 1

Если Вы в QtDesigner (редактор форм) добавляете текстовое поле с именем txt_field_1 - то обращайтесь к нему не через this->txt_field_1, а через this->ui->txt_field_1.

READ ALSO
Является ли exit(1) крашем программы?

Является ли exit(1) крашем программы?

Можно ли вызов exit(1); назвать падением приложения? При условии вызова exit(1); в любое время выполнения?

194
Неправильно работает код [закрыт]

Неправильно работает код [закрыт]

Вся база не выводится, выводятся только вторые введенные значения

192
Сокращение строки в выводе

Сокращение строки в выводе

Пытаюсь изменить символ в строке на \0, чтобы выводить её не полностью (тк

162
Ошибка инициализации из-за метки case [дубликат]

Ошибка инициализации из-за метки case [дубликат]

На данный вопрос уже ответили:

242