void MainWindow::selectFile() { QString dir = QFileDialog::getOpenFileName(this, "选择文件", "", "DWG Files (*.dwg)"); guideCadIntoData(dir); } bool guideCadIntoData( QString dir){ if (dir.isEmpty()) { return false; } else { return true; // 进行导入操作 // ... } } mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "private: bool __cdecl MainWindow::guideCadIntoData(class QString &)" (?guideCadIntoData@MainWindow@@AEAA_NAEAVQString@@@Z),该符号在函数 "private: void __cdecl MainWindow::selectFile(void)" (?selectFile@MainWindow@@AEAAXXZ) 中被引用
时间: 2024-04-16 08:28:04 浏览: 148
根据你提供的代码和错误信息,出现了一个链接错误:“无法解析的外部符号”。这是因为 `guideCadIntoData()` 函数在 `MainWindow::selectFile()` 函数中被引用,但链接器无法找到 `guideCadIntoData()` 函数的定义。
要解决这个问题,你需要确保在 `MainWindow` 类的实现文件中提供 `guideCadIntoData()` 函数的定义。这样,链接器就能够找到并解析该函数。
以下是修正后的代码示例:
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *selectButton = new QPushButton("选择文件", this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(selectButton);
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
connect(selectButton, &QPushButton::clicked, this, &MainWindow::selectFile);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::selectFile()
{
QString dir = QFileDialog::getOpenFileName(this, "选择文件", "", "DWG Files (*.dwg)");
guideCadIntoData(dir);
}
bool MainWindow::guideCadIntoData(QString dir)
{
if (dir.isEmpty()) {
return false;
} else {
// 进行导入操作
// ...
return true;
}
}
```
在修正后的代码中,我将 `guideCadIntoData()` 函数的定义添加到了 `MainWindow` 类的实现文件中。这样,链接器就能够找到并解析该函数。
请根据你的实际需求进行适当修改,并确保在实现文件中提供了 `guideCadIntoData()` 函数的定义。
阅读全文