Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 连接QML和Qt_Android_C++_Qt_Qml - Fatal编程技术网

Android 连接QML和Qt

Android 连接QML和Qt,android,c++,qt,qml,Android,C++,Qt,Qml,这是我复杂的问题,我希望你知道答案:) 我正在使用Qt开发android应用程序。 我已经为GUI制作了.ui文件,但我没有找到我真正想要的,所以很多人建议使用QML,因为它非常动态,并且有很多可用的选项 但我的问题是,我以前从未使用过QML 我需要一些功能方面的帮助,这样我就可以知道以后怎么做了 比如说。这是我的函数,我调用它来使用post方法并调用php脚本从数据库读取数据 void MainWindow::Citanje_korisnika() //read users { in

这是我复杂的问题,我希望你知道答案:)

我正在使用Qt开发android应用程序。 我已经为GUI制作了
.ui
文件,但我没有找到我真正想要的,所以很多人建议使用QML,因为它非常动态,并且有很多可用的选项

但我的问题是,我以前从未使用过QML

我需要一些功能方面的帮助,这样我就可以知道以后怎么做了

比如说。这是我的函数,我调用它来使用post方法并调用php脚本从数据库读取数据

void MainWindow::Citanje_korisnika()  //read users
{
    init();
    QUrl params;
    params.addQueryItem("action","Citanje_korisnika");
    QByteArray data;
    data.append(params.toString());
    data.remove(0,1);
    QNetworkRequest request;
    request.setUrl(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader,
    QVariant("application/x-www-form-urlencoded"));
    reply = manager->post(request, data);
    connect(reply, SIGNAL(downloadProgress(qint64, qint64)),this, SLOT(updateDataTransferProgress(qint64,qint64)));
}
  • 所以我的问题是如何从qml代码调用这个函数?例如,当用户按下按钮时

  • 在那之后,我有了这个函数,它把我的一切都变成了我的形式

    void MainWindow::Pokazi(QList< QMap<QString,QString> >& osobe)  //show
    {
        i_max=osobe.count();
        osobe_next=osobe;
        osoba = osobe.at(0);
        //trenutni_id=osoba["id"];
        ui->label_ID->setText(osoba["id"]);
        ui->line_ime->insert(osoba["ime"]);
        ui->line_prezime->insert(osoba["prezime"]);
        ui->line_telefon->insert(osoba["broj"]);
        ui->line_adresa->insert(osoba["adresa"]);
    }
    
  • 这是唯一一个已插入值的示例。我的问题是如何使它从qml代码动态填充

    我想让我的列表看起来像这个链接中的第二张图片:

    我设法使它看起来像这样,但问题是我想动态加载我的数据,我不希望它预定义

    如果您需要更多代码,请告诉我。

    < P > 1)从QML调用C++函数很容易。 您需要通过setContextProperty公开对象 qdeCrativeContext*ctxt=view.rootContext(); ctxt->setContextProperty(“计时器”、&timerObj)

    然后,您可以调用公开对象或函数的任何插槽,这些插槽被定义为Q_可调用

    也许能帮你更多

    2) 您需要创建模型,可以使用,也可以创建派生自的自定义模型

    希望这对你有帮助

    ListModel {
        ListElement {
            name: "Bill Smith"
            number: "555 3264"
        }
        ListElement {
            name: "John Brown"
            number: "555 8426"
        }
    }