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++
1#ifndef MAINWINDOW_H 2#define MAINWINDOW_H 3 4#include <QMainWindow> 5#include <QVector> 6#include "task.h" 7 8namespace Ui { 9class MainWindow; 10} 11 12class MainWindow : public QMainWindow 13{ 14 Q_OBJECT 15 16public: 17 explicit MainWindow(QWidget *parent = 0); 18 ~MainWindow(); 19 20public slots: 21 void addTask(); 22 23private: 24 Ui::MainWindow *ui; 25 QVector<Task*> mTasks; 26}; 27 28#endif // MAINWINDOW_H 29
task.h
c++
1#ifndef TASK_H 2#define TASK_H 3 4#include <QWidget> 5#include <QString> 6 7namespace Ui { 8class Task; 9} 10 11class Task : public QWidget 12{ 13 Q_OBJECT 14 15public: 16 explicit Task(const QString& name, QWidget *parent = 0); 17 ~Task(); 18 19 void setName(const QString& name); 20 QString name() const; 21 bool isCompleted() const; 22 23private: 24 Ui::Task *ui; 25}; 26 27#endif // TASK_H 28
mainwindow.cpp
c++
1#include "mainwindow.h" 2#include "ui_mainwindow.h" 3#include <QDebug> 4 5MainWindow::MainWindow(QWidget *parent) : 6 QMainWindow(parent), 7 ui(new Ui::MainWindow), 8 mTasks() 9{ 10 ui->setupUi(this); 11 connect(ui->addTaskButton, &QPushButton::clicked, this, &MainWindow::addTask); 12} 13 14MainWindow::~MainWindow() 15{ 16 delete ui; 17} 18 19void MainWindow::addTask() 20{ 21 qDebug() << "Adding new task"; 22 Task* task = new Task("Untitled task"); 23 mTasks.append(task); 24 ui->tasksLayout->addWidget(task); 25} 26
task.cpp
c++
1#include "task.h" 2#include "ui_task.h" 3 4Task::Task(const QString& name, QWidget *parent) : 5 QWidget(parent), 6 ui(new Ui::Task) 7{ 8 ui->setupUi(this); 9 setName(name); 10} 11 12Task::~Task() 13{ 14 delete ui; 15} 16 17void Task::setName(const QString &name) 18{ 19 ui->checkbox->setText(name); 20} 21 22QString Task::name() const 23{ 24 return ui->checkbox->text(); 25} 26 27bool Task::isCompleted() const 28{ 29 return ui->checkbox->isChecked(); 30} 31
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。