我在 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 基本相同。