QT 5.13.2 C ++ выпускает доступ члена к неполному типу 'Ui :: UsersWidget' - PullRequest
0 голосов
/ 01 декабря 2019

Моя цель - создать виджет, который будет отображать информацию о таблице пользователей, поэтому в будущем я смогу включить этот виджет в макет главного окна.

Я создаю класс с именем UsersWidget, унаследованный от QWidget, иполучение ошибки в userswidget.h файле:

userswidget.h:21:21: error: field has incomplete type 'Ui::UsersWidget'
userswidget.h:8:7: note: forward declaration of 'Ui::UsersWidget'

Код:

.pro файл

SOURCES += \
    main.cpp \
    mainwindow.cpp \
    userswidget.cpp

HEADERS += \
    init_db.h \
    mainwindow.h \
    userswidget.h

FORMS += \
    mainwindow.ui \
    userswidget.ui

userswidget.cpp

#include "userswidget.h"

UsersWidget::UsersWidget(QWidget *parent) : QWidget(parent)
{
    ui->setupUi(this);
}

userswidget.h

#ifndef USERSWIDGET_H
#define USERSWIDGET_H

#include <QWidget>
#include "ui_userswidget.h" // ???

namespace Ui{
class UsersWidget;
}

class UsersWidget : public QWidget {
    Q_OBJECT
public:
    explicit UsersWidget(QWidget *parent = nullptr);

signals:

public slots:

private:
    Ui::UsersWidget ui; // issue: field has incomplete type 'Ui::UsersWidget'
};

#endif // USERSWIDGET_H

На мой взгляд, это из-за автоматически сгенерированного файла "ui_userswidget.h", но я не могу понять это сам.

1 Ответ

0 голосов
/ 05 декабря 2019

1) ui должен быть указателем

2) Назовите объект пользовательского интерфейса «UsersWidget», а не «Form»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...