我正在(第二次)尝试在 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。