ошибка при попытке доступа к элементам формы в Qt - PullRequest
0 голосов
/ 04 мая

Я пытаюсь переписать проект с python на c ++. Я импортировал форму в свой проект, но при доступе к ней возникает ошибка времени выполнения (см. Ниже), я могу получить доступ к методам формы, но при выполнении она выдает ошибку

enter image description here ниже представлен весь код

plaindict.h

#include <QDialog>
#include "ui_plaindict.h"

namespace Ui {
class PlainDict;
}

class PlainDict : public QDialog
{
    Q_OBJECT

public:
    explicit PlainDict(QDialog *parent = nullptr);
    ~PlainDict();

private:
    Ui::PlainDict *ui;
};

plaindict. cpp

#include "plaindict.h"
#include "ui_plaindict.h"
PlainDict::PlainDict(QDialog *parent) :
    QDialog(parent),
    ui(new Ui::PlainDict)
{
    ui->inputLine->setText("regetrg");

    ui->setupUi(this);
}
PlainDict::~PlainDict()
{
    delete ui;
}

main. cpp

#include "plaindict.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    PlainDict w;
    w.show();

    return a.exec();
}

и про файл

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = PlainDict
TEMPLATE = app

DEFINES += QT_DEPRECATED_WARNINGS

CONFIG += c++11

SOURCES += \
        main.cpp \
        plaindict.cpp \
    modelfororiginal.cpp

HEADERS += \
        plaindict.h \
    modelfororiginal.h\


FORMS += \
        plaindict.ui
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

1 Ответ

2 голосов
/ 04 мая
ui->inputLine->setText("regetrg");
ui->setupUi(this);

Здесь вы получаете доступ к inputLine до того, как он будет инициализирован этим вызовом setupUi.

Чтобы исправить, измените порядок этих строк.

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