3

qt プロジェクトで新しいウィンドウ/ダイアログ フォームのメインウィンドウを開くことができません。

オープン機能:

    void MainWindow::on_btDodajProdukt_clicked()
{
    newDialog = new DodajProdukt(this);
    newDialog->show();

}

MainWindow には以下が含まれます。

#include "dodajprodukt.h"

MainWindow.h

    DodajProdukt *newDialog;

クラス DodajProdukt は、desinger に追加された新しい Window です。

次のエラーが表示されます。

mainwindow.obj:-1: błąd:LNK2019: 未解決の外部シンボル "public: __thiscall DodajProdukt::DodajProdukt(class QWidget *)" (??0DodajProdukt@@QAE@PAVQWidget@@@Z) 関数で参照されている "private: void __thiscall MainWindow::on_btDodajProdukt_clicked(void)" (?on_btDodajProdukt_clicked@MainWindow@@AAEXXZ)

編集:

dodajprodukt.cpp

    #include "dodajprodukt.h"
#include "ui_dodajprodukt.h"


DodajProdukt::DodajProdukt(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DodajProdukt)
{
    ui->setupUi(this);
}

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

プロファイル:

    QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Hurtownia
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    dodajprodukt.cpp \
    listaproduktow.cpp

HEADERS  += mainwindow.h \
    dodajprodukt.h \
    listaproduktow.h

FORMS    += mainwindow.ui \
    dodajprodukt.ui \
    listaproduktow.ui
4

4 に答える 4

3

プロジェクトを右クリックしてから、クリーンアップしてqmakeを実行し、再構築して修正しました

于 2013-08-01T09:14:05.187 に答える
1

DodajProdukt に関連するすべてのファイルを .pro ファイルに追加する必要があります (qmake を使用している場合)。

デザイナーで作成された .ui ファイルの場合:

FORMS += dodajprodukt.ui # assuming that's how it's called

そして、どうやら .h/.cpp ファイルもあるようです:

HEADERS += dodajprodukt.h
SOURCES += dodajprodukt.cpp
于 2013-01-07T18:17:16.177 に答える
1

同じエラーが発生しました。新しいプロジェクトを作成し、コードをコピーします。次に、この方法が機能するかどうかを確認する簡単なサンプル コードを作成します。

于 2013-01-07T18:50:44.923 に答える
0

私も同じ問題を抱えてる。

.pro.userファイルを削除し、プロジェクトビルドフォルダーを削除した後、修正しました

于 2013-01-11T16:10:17.910 に答える