为什么 KDevel 找不到类定义?

为什么 KDevel 找不到类定义?

我正在(第二次)尝试在 Hyper-V 虚拟机上运行 Kubuntu,但在两种情况下,我都从 KDevel 获得了以下行为。

我使用 Discover 安装了 KDevel,打开了 KDevel,并尝试使用它提供的其中一个模板创建一个应用程序(Qt>图形化>KParts 应用程序)。

我在 main.cpp 中得到的代码如下。

#include "kdrupalconsoleshell.h"

// KF headers
#include <KAboutData>
#include <KLocalizedString>

// Qt headers
#include <QApplication>
#include <QCommandLineParser>
#include <QUrl>
#include <QDir>
#include <QIcon>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);

    KLocalizedString::setApplicationDomain("kdrupalconsole");

    KAboutData aboutData(QStringLiteral("kdrupalconsole"),
        i18n("KDrupalConsole"),
        QStringLiteral("%{VERSION}"),
        i18n("A KPart Application"),
        KAboutLicense::GPL,
        i18n("Copyright %{CURRENT_YEAR} %{AUTHOR}"));
    aboutData.addAuthor(i18n("%{AUTHOR}"), i18n("Author"), QStringLiteral("%{EMAIL}"));
    aboutData.setOrganizationDomain("example.org");
    aboutData.setDesktopFileName(QStringLiteral("org.example.kdrupalconsole"));

    KAboutData::setApplicationData(aboutData);
    app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kdrupalconsole")));

    QCommandLineParser parser;
    parser.addHelpOption();
    parser.addVersionOption();
    aboutData.setupCommandLine(&parser);
    parser.addPositionalArgument(QStringLiteral("urls"), i18n("Document(s) to load."), QStringLiteral("[urls...]"));

    parser.process(app);
    aboutData.processCommandLine(&parser);

    const auto urls = parser.positionalArguments();

    if (urls.isEmpty()) {
        auto window = new KDrupalConsoleShell;
        window->show();
    } else {
        for (const auto &url : urls) {
            auto window = new KDrupalConsoleShell;
            window->show();
            window->loadDocument(QUrl::fromUserInput(url, QDir::currentPath(), QUrl::AssumeLocalFile));
        }
    }

    return app.exec();
}

当我看到问题选项卡,从语义分析中,我得到以下错误。(我只报告其中的一部分。)

未找到 'QCommandLineParser' 文件
未找到 'QUrl' 文件
未找到 'QDir' 文件
未找到 'QIcon' 文件
未知类型名称 'QApplication'
使用了未声明的标识符 'KLocalizedString'
未知类型名称 'KAboutData'
使用了未声明的标识符 'QStringLiteral'
使用了未声明的标识符 'i18n'
使用了未声明的标识符 'QStringLiteral'
使用了未声明的标识符 'i18n'
使用了未声明的标识符 'KAboutLicense'

如果我点击右键未知类型名称“QApplication”,我收到一个修复提示,建议包含一个新的头文件。在我应用一些修复提示后,包含的头文件列表更改为以下列表。

#include "kdrupalconsoleshell.h"
#include <qt5/QtWidgets/qapplication.h>
#include <KF5/KI18n/klocalizedstring.h>
#include <KF5/KCoreAddons/kaboutdata.h>
#include <qt5/QtWidgets/qapplication.h>

// KF headers
#include <KAboutData>
#include <KLocalizedString>

// Qt headers
#include <QApplication>
#include <QCommandLineParser>
#include <QUrl>
#include <QDir>
#include <QIcon>

现在,我遇到了新的错误,例如变量具有不完整的类型“QApplication”修复提示是添加已经存在的#include <qt5/QtWidgets/qapplication.h>行。

除了应用我报告的修复提示之外,我没有编辑从 IDE 生成的代码。

在开始创建代码之前我需要做什么吗?例如,我需要更改设置、告诉 KDevel 执行某些操作或安装其他东西吗?

如果这有任何区别,我正在使用 KDevel 5.2.1。

相关内容