适用于设备的 PyQt5 应用程序 Ubuntu(Ubuntu Touch)中的 QtWebkit 和 QML 问题

适用于设备的 PyQt5 应用程序 Ubuntu(Ubuntu Touch)中的 QtWebkit 和 QML 问题

我在 ubuntu 设备(Nexus 10)中使用 pyqt5 时遇到了 qtwebkit 问题,webview 元素不显示,应用程序关闭。但如果我用 qmlscene 测试同一个 .qml 文件,它可以工作,但 webview 是全屏大小。

如果我注释掉高度和宽度线,python 应用程序将继续运行,但屏幕会显示为白色。

这是 testQt5.py 文件:

import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQuick import QQuickView

app = QApplication(sys.argv)

view = QQuickView()
view.setSource(QUrl("file:///home/phablet/Documents/GUIWK.qml"))
view.show()

app.exec()

GUIWK.qml 文件:

import QtQuick 2.0
import QtWebKit 3.0
import Ubuntu.Components 0.1

MainView {
    width: units.gu(120)
    height: units.gu(80)
    Rectangle {
        id: content
        anchors.fill: parent
        WebView{
            height: content.height
            width: content.width
            id: webview
            url: "http://www.google.com"
        }
    }
}

testQt5.desktop文件:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
#Exec=python3 /home/phablet/Documents/testQt5.py
Exec=/usr/bin/qmlscene $@ /home/phablet/Documents/GUIWK.qml
Icon=qmlscene
Name=testQt5
X-Ubuntu-Touch=true

我运行该应用程序,但它没有在 ~/.cache/upstart 的日志文件中显示任何特殊内容:

creating surface at (0, 64) with size (2560, 1536) with title 'Window 1'

答案1

qtwebkit不是 SDK 中支持用于手机的 API。您需要改用 Oxide。

您可以使用以下方式执行此操作:

导入 com.canonical.Oxide 1.0

它提供的 API 与 QtWebKit 基本相同。

相关内容