因此,我正在尝试将我的 APK 上传到 Google Play 商店,但随后我收到了“您上传了一个在调试模式下签名的 APK。您需要在发布模式下对您的 APK 进行签名。” 即使我已在 Visual Studio 中可以找到的每个地方将我的应用程序设置为发布模式。我不知道我做错了什么......有什么帮助吗?
所以我是 Qt 的新手,我正在努力提高我的 C++ 技能,所以我决定开始一个项目,在那里我可以使用文本字段搜索 QStringList 中的项目。我使搜索功能正常工作,并且能够将搜索结果移动到另一个QStringList,在那里我可以使用它在声明为“公共插槽”的函数中向用户显示。
主要想法是,一旦用户在文本字段中输入字符,列表就会自动更新,它已经这样做了。所以我设法将结果列表放入 Slot 函数中,以便每次在文本字段中输入字符时都能显示不同的列表。
在我传入搜索结果列表的函数中,我试图使用它
m_context->setContextProperty("resultModel",QVariant::fromValue(m_resultList));
Run Code Online (Sandbox Code Playgroud)
哪里resultModel是我的模型在 QML 中的名称,m_resultList是存储搜索结果的位置,以在ListView. 我的程序可以编译,但运行后崩溃了。
所以,我真正的问题是:有什么方法可以将不在 main.cpp 中的 C++ QStringList 显示到 QML ListView 中?
我要求它不在 main 中的原因是因为我试图在 main.cpp 中使用上面的同一行硬编码QStringList并且列表能够显示,所以它一定有问题不在主要。也因为我无法使用插槽功能SearchClass来自动更新。
主程序
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QDebug>
#include "searchclass.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
qmlRegisterType<SearchClass>("b9c.backend", 1, 0, "BackEnd");
QQmlApplicationEngine engine;
SearchClass obj;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QQmlContext *context = engine.rootContext();
obj.getContext(context);
//the line below works …Run Code Online (Sandbox Code Playgroud)