gpt4 book ai didi

c++ - QT5 Html5ApplicationViewer - C++ 调用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:31 25 4
gpt4 key购买 nike

我有一个小问题,我希望你能帮助我。

首先:我搜索了几天,找到了一些不同的解决方法,但它们都不适合我。

我基本上使用 HTML5 和 Javascript 构建了一个小应用程序 - 没问题。但是现在我想把所有的东西都保存到一个文件中。这也不是真正的问题,fstreams 很简单。

现在这是我的问题:如何调用我的函数?我已经尝试了几种方法,比如制作 QtObject 和类似的东西,但那当然没有用,因为我必须将 Javascript 函数与我的 C++ 函数连接起来。因此,我阅读了 JS-Bridge-Docu( http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html ),但要么我对它的理解不够深入(这绝对在可能性范围内!),要么它对我的问题不够具体,因为我使用内置的 Html5ApplicationViewer 类而不是 QtWeb 类之一。

你能给我解决方案吗,或者至少给我一个解决这个问题的方法?这真的让我发疯,因为这是我项目中唯一的困难。

目前我的代码是这样的:

#include <QApplication>
#include <fstream>
#include "html5applicationviewer.h"

using namespace std;

void initFile() {
fstream f;
f.open("music.nxc", ios::trunc|ios::out);
f << "task main() {" << endl;
f.close();
}

class fileSave : public QObject {
public:
void saveToFile();
};

void fileSave::saveToFile() {
fstream f;
f.open("music.nxc", ios::out|ios::app);
f << "success!" << endl;
f.close();
}

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

Html5ApplicationViewer viewer;
viewer.resize(1280, 800);
viewer.setOrientation(Html5ApplicationViewer::ScreenOrientationAuto);
viewer.showExpanded();

viewer.loadFile(QLatin1String("html/index.html"));

initFile();
fileSave file;

return app.exec();
}

我知道代码不是很好,但我会在这个问题解决后立即清理它。

最佳答案

abc.h

protected slots:
void f();

abc.cpp

//in constructor
//make sure that page already loaded
webView->page()->mainFrame()->addToJavaScriptWindowObject("qt", this);


// implement function
void Abc::f()
{
// do what you want to do
}

abc.js

qt.f();

关于c++ - QT5 Html5ApplicationViewer - C++ 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com