WebEngineView 变量 'canGoBack' 和 'canGoForward' returns 错误的值
WebEngineView variables 'canGoBack' and 'canGoForward' returns wrong values
我正在 Raspberry Pi 4 上开发 运行 的应用程序,我发现 QML 的 WebEngineView 有这种奇怪的行为。
我创建了 3 个按钮,用于转到主页和返回和前进:
Button {
id: box_button_main_page
text: "Go to Main Page"
onClicked: mainWebView.url = "https://www.youtube.com/"
}
Button {
id: box_button_go_back
enabled: mainWebView.canGoBack
text: "Back"
onClicked: mainWebView.goBack()
}
Button {
id: box_button_go_forward
enabled: mainWebView.canGoForward
text: "Forward"
onClicked: mainWebView.goForward()
}
它按预期工作:“后退”和“前进”按钮在正确的位置变灰。但是,如果有人做出以下行为:
- 转到任何 link
- 去另一个link
- 点击“后退”按钮
- 单击“转到主页”
那么“后退”和“前进”按钮仍然可用。点击“前进”按钮什么也没做。
我在“转到主页”onClicked
操作中检查了 canGoBack
和 canGoForward
returns true
在设置 [=18= 之后] 属性。我试图搜索是否还有另一种方法可以命令 WEV 切换到另一个页面,但是有 none :(.
我在网上没有发现任何人将其报告为错误,所以要么我做错了,要么我确实发现了错误 >_>
适用于 WebAction
。看看这个 demo。我所做的就是在 ToolBar
RowLayout
中添加以下 Button
:
Button {
text: "Go to Main Page"
onClicked: webEngineView.url = "https://www.youtube.com/"
}
这是使用 WebAction
的完整示例:
import QtQuick 2.15
import QtQuick.Window 2.15
import QtWebEngine 1.10
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
ApplicationWindow {
id: window
visible: true
width: 800
height: 600
title: qsTr("WebEngineAction Example")
header: ToolBar {
RowLayout {
anchors.fill: parent
Button {
text: "Go to Main Page"
onClicked: webEngineView.url = "https://www.youtube.com/"
}
Button {
property int itemAction: WebEngineView.Back
text: "Back"
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
}
Button {
property int itemAction: WebEngineView.Forward
text: "Forward"
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
}
}
}
WebEngineView {
id: webEngineView
url: "https://qt.io"
anchors.fill: parent
}
}
我正在 Raspberry Pi 4 上开发 运行 的应用程序,我发现 QML 的 WebEngineView 有这种奇怪的行为。
我创建了 3 个按钮,用于转到主页和返回和前进:
Button {
id: box_button_main_page
text: "Go to Main Page"
onClicked: mainWebView.url = "https://www.youtube.com/"
}
Button {
id: box_button_go_back
enabled: mainWebView.canGoBack
text: "Back"
onClicked: mainWebView.goBack()
}
Button {
id: box_button_go_forward
enabled: mainWebView.canGoForward
text: "Forward"
onClicked: mainWebView.goForward()
}
它按预期工作:“后退”和“前进”按钮在正确的位置变灰。但是,如果有人做出以下行为:
- 转到任何 link
- 去另一个link
- 点击“后退”按钮
- 单击“转到主页”
那么“后退”和“前进”按钮仍然可用。点击“前进”按钮什么也没做。
我在“转到主页”onClicked
操作中检查了 canGoBack
和 canGoForward
returns true
在设置 [=18= 之后] 属性。我试图搜索是否还有另一种方法可以命令 WEV 切换到另一个页面,但是有 none :(.
我在网上没有发现任何人将其报告为错误,所以要么我做错了,要么我确实发现了错误 >_>
适用于 WebAction
。看看这个 demo。我所做的就是在 ToolBar
RowLayout
中添加以下 Button
:
Button {
text: "Go to Main Page"
onClicked: webEngineView.url = "https://www.youtube.com/"
}
这是使用 WebAction
的完整示例:
import QtQuick 2.15
import QtQuick.Window 2.15
import QtWebEngine 1.10
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
ApplicationWindow {
id: window
visible: true
width: 800
height: 600
title: qsTr("WebEngineAction Example")
header: ToolBar {
RowLayout {
anchors.fill: parent
Button {
text: "Go to Main Page"
onClicked: webEngineView.url = "https://www.youtube.com/"
}
Button {
property int itemAction: WebEngineView.Back
text: "Back"
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
}
Button {
property int itemAction: WebEngineView.Forward
text: "Forward"
enabled: webEngineView.action(itemAction).enabled
onClicked: webEngineView.action(itemAction).trigger()
}
}
}
WebEngineView {
id: webEngineView
url: "https://qt.io"
anchors.fill: parent
}
}