Mastering Qt5
https://www.amazon.co.jp/gp/product/B01F7HCAXK/ref=oh_aui_d_detailpage_o00_?ie=UTF8&psc=1
という本を読んでいるのですが、
mainwindow.obj👎 エラー: LNK2019: 未解決の外部シンボル "public: __cdecl Task::Task(class QString const &,class QWidget *)" (??0Task@@QEAA@AEBVQString@@PEAVQWidget@@@Z) が関数 "public: void __cdecl MainWindow::addTask(void)" (?addTask@MainWindow@@QEAAXXZ) で参照されました。
というエラーが出て、本に書いてあるコードと自分のコードを見比べてみましたが、同じで、解決方法が分かりません。
mainwindow.h
c++
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QVector> #include "task.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void addTask(); private: Ui::MainWindow *ui; QVector<Task*> mTasks; }; #endif // MAINWINDOW_H
task.h
c++
#ifndef TASK_H #define TASK_H #include <QWidget> #include <QString> namespace Ui { class Task; } class Task : public QWidget { Q_OBJECT public: explicit Task(const QString& name, QWidget *parent = 0); ~Task(); void setName(const QString& name); QString name() const; bool isCompleted() const; private: Ui::Task *ui; }; #endif // TASK_H
mainwindow.cpp
c++
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), mTasks() { ui->setupUi(this); connect(ui->addTaskButton, &QPushButton::clicked, this, &MainWindow::addTask); } MainWindow::~MainWindow() { delete ui; } void MainWindow::addTask() { qDebug() << "Adding new task"; Task* task = new Task("Untitled task"); mTasks.append(task); ui->tasksLayout->addWidget(task); }
task.cpp
c++
#include "task.h" #include "ui_task.h" Task::Task(const QString& name, QWidget *parent) : QWidget(parent), ui(new Ui::Task) { ui->setupUi(this); setName(name); } Task::~Task() { delete ui; } void Task::setName(const QString &name) { ui->checkbox->setText(name); } QString Task::name() const { return ui->checkbox->text(); } bool Task::isCompleted() const { return ui->checkbox->isChecked(); }
まだ回答がついていません
会員登録して回答してみよう