我试图用动态数据使用C++/QT显示网页。
发布于 2012-05-31 14:58:02
您可以使用QWebView函数设置setHtml()
内容。看一看文档。当用户单击按钮加载HTML时调用它。要获取加载的HTML代码的内容,可以使用QWebFrame在QWebView中提供的两个方法:
webview->page()->mainFrame()->toPlainText()
webview->page()->mainFrame()->toHTML()
您必须解析HTML才能从QWebView中显示的表中读取数据。
发布于 2012-05-31 15:01:41
对第一个问题的回答
您可以使用QWebView使用QWebView::setHtml()
或QWebView::load()
函数显示启动html。
对第二个问题的回答
对于这个问题,可以通过多种方法在页面中设置动态数据。
一种方法是可以使用javascript函数来更新html表。它将被插入到<script>
标记的html中。现在您可以使用以下函数传递数据(通过c++读取)。
webView->page()->mainFrame()->evaluateJavaScript(yourJavascript);
那么,您必须从通过yourJavascript
读取的数据中生成javascript函数调用字符串c++。
但是,如果您可以以JSON格式从数据库中检索数据,这对您来说将是非常容易的。例如,您可以使用QJson第三方库解析和序列化JSON数据,如下所示。
QByteArray data; // Say data arrived from the database is stored in this object.
QJson::Parser parser;
QVariantMap map = parser.parse(data).toMap();
// Now serialize it and pass it to javascript function as an argument..
QJson::Serializer serializer;
QString javaScript = "updateHtmlView(" + serializer.serialize(map) + ");";
webView->page()->mainFrame()->evaluateJavaScript(javaScript);
现在,您可以通过在javascript中读取JSON对象来更新html表。
发布于 2012-05-31 14:20:31
看看QWebView,http://doc.qt.io/qt-5/qwebview.html
来自上述网站的示例
QWebView *view = new QWebView(parent);
view->load(QUrl("http://qt.nokia.com/"));
view->show();
在用户单击的事件处理程序中创建此视图,所有这些视图都应该正常工作。
https://stackoverflow.com/questions/10835177
复制相似问题