最小化 Qt 5.15 中的 window 问题
Minimizing window issue in Qt 5.15
Window {
id: mainWindow
width: 960
height: 600
flags: Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint | Qt.Window
Rectangle {
width: 15
height: 15
anchors {
top: parent.top
left: parent.left
topMargin: 10
leftMargin: 910
}
SvgImage {
width: 11
height: 2
source: "images/Collapse.svg"
anchors {
centerIn: parent
}
}
MouseArea {
id: mouse
anchors {
fill: parent
}
onPressed: {
mainWindow.showMinimized()
}
}
Timer {
repeat: true
interval: 1000
running: true
onTriggered: {
console.log("mouse.pressed = ", mouse.pressed);
}
}
}
}
我遇到了 Qt.FramelessWindowHint 的问题。使用 showMinimized() 函数后,我恢复了 window,但随后任何点击 window 都会导致再次最小化 window。 mouseArea 永远不会被按下。我尝试将定时器打印 mouse.pressed 值,但它一直都是错误的。
我找到了关于这个问题的几个链接,但除了在恢复 window 时进入全屏外,没有其他解决方案。我的应用程序始终保持相同大小,从不进入全屏。
https://www.qtcentre.org/threads/42641-QML-rendering-problems-after-showMinimized()
QML: rendering problems after showMinimized()
也许你可以给我一个解决方法的提示。顺便说一句,我正在使用 Qt 5.15
事实上,在运行你的代码之后我看不到任何windows
我添加了 visible: true
并删除了 SvgImage
.
我就是这样运行:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
id: mainWindow
width: 960
height: 600
visible: true
flags: Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint | Qt.Window
Rectangle {
width: 15
height: 15
color: "#f50909"
anchors {
top: parent.top
left: parent.left
topMargin: 10
leftMargin: 910
}
MouseArea {
id: mouse
anchors {
fill: parent
}
onPressed: {
mainWindow.showMinimized()
}
}
}
}
这是我的结果,它工作正常:
在 MouseArea
中使用 onClicked
而不是 onPressed
。
Window {
id: mainWindow
width: 960
height: 600
flags: Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint | Qt.Window
Rectangle {
width: 15
height: 15
anchors {
top: parent.top
left: parent.left
topMargin: 10
leftMargin: 910
}
SvgImage {
width: 11
height: 2
source: "images/Collapse.svg"
anchors {
centerIn: parent
}
}
MouseArea {
id: mouse
anchors {
fill: parent
}
onPressed: {
mainWindow.showMinimized()
}
}
Timer {
repeat: true
interval: 1000
running: true
onTriggered: {
console.log("mouse.pressed = ", mouse.pressed);
}
}
}
}
我遇到了 Qt.FramelessWindowHint 的问题。使用 showMinimized() 函数后,我恢复了 window,但随后任何点击 window 都会导致再次最小化 window。 mouseArea 永远不会被按下。我尝试将定时器打印 mouse.pressed 值,但它一直都是错误的。 我找到了关于这个问题的几个链接,但除了在恢复 window 时进入全屏外,没有其他解决方案。我的应用程序始终保持相同大小,从不进入全屏。
https://www.qtcentre.org/threads/42641-QML-rendering-problems-after-showMinimized()
QML: rendering problems after showMinimized()
也许你可以给我一个解决方法的提示。顺便说一句,我正在使用 Qt 5.15
事实上,在运行你的代码之后我看不到任何windows
我添加了 visible: true
并删除了 SvgImage
.
我就是这样运行:
import QtQuick 2.15
import QtQuick.Window 2.15
Window {
id: mainWindow
width: 960
height: 600
visible: true
flags: Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint | Qt.Window
Rectangle {
width: 15
height: 15
color: "#f50909"
anchors {
top: parent.top
left: parent.left
topMargin: 10
leftMargin: 910
}
MouseArea {
id: mouse
anchors {
fill: parent
}
onPressed: {
mainWindow.showMinimized()
}
}
}
}
这是我的结果,它工作正常:
在 MouseArea
中使用 onClicked
而不是 onPressed
。