将简单的 QWebView 示例转换为 Java

Posted

技术标签:

【中文标题】将简单的 QWebView 示例转换为 Java【英文标题】:Converting simple QWebView example to Java 【发布时间】:2012-08-23 14:04:38 【问题描述】:

您如何使用 QWebView 小部件将以下简单的 C 语言 QT 示例转换为 Java (QtJambi):

int main(int argc, char *argv[])

    QApplication app(argc, argv);
    QWebView view;
    view.load(QUrl("http://www.trolltech.com/"));
    view.show();
    return app.exec();

(位于:http://doc.qt.nokia.com/qq/qq26-webplugin.html#qtwebkitbasics)

我可能弄错了,但我想我记得去年 Qt-Jambi javadoc 中有这样一个例子,但我再也找不到它了,当我转到 http://qt-jambi.org/documentation 时,它说“Apidoc of latest built (原文如此)还没有工作”

【问题讨论】:

Java API 文档不再构建,因为 Qt 和用于生成它们的“qdoc3”工具已删除其 Java/javadoc 支持。我认为这是因为(当时)诺基亚的管理者不再支持 Java,并且没有时间或兴趣将其与 C++ 业务需求一起维护。但是,一旦任务优先级成为积压列表的顶部,就有一种策略可以创建替代机制来生成它们。 【参考方案1】:

Qt Jambi 中的 API非常与原始 Qt API 相似,因此几乎可以直接翻译示例。

所以是C++版本

QWebView view;
view.load(QUrl("http://www.trolltech.com/"));

在Java中被翻译成如下

QWebView view = new QWebView();
view.load(new QUrl("http://www.trolltech.com/"));

应用程序的其余部分(创建主窗口、运行应用程序)可以在hello world tutorial 中找到。

我的家庭 mac 上没有工作环境,但这个示例应该可以工作:

import com.trolltech.qt.core.*;
import com.trolltech.qt.gui.*;
import com.trolltech.qt.webkit.*;

public class SO12093494 extends QMainWindow 

   private QWebView webView;

   public SO12093494()  this(null); 
   public SO12093494(QWidget parent) 
      super(parent);

      webView = new QWebView();
      setCentralWidget(webView);
   

   public void loadUrl(String url) 
      webView.load(new QUrl(url));
   

   public static void main(String[] args) 
      QApplication.initialize(args);

      SO12093494 app = new SO12093494();
      app.loadUrl("http://www.trolltech.com");
      app.show();

      QApplication.exec();
   

【讨论】:

以上是关于将简单的 QWebView 示例转换为 Java的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PyQt 中对 qwebview 应用掩码?

如何将 QWebView 放置在 QTabWidget 中?

在 QWebView 中设置文本输入焦点

从 C++ 访问 QML WebView

以交互模式在 qwebview 中打开 plotly

QT:如何在点击事件上展开/折叠文本(qtextbrowser,qwebview,...)