Ich möchte, dass die Ränder des Inhaltsbereichs vom Hauptfenster verschoben werden, sodass ich Ränder von 20 hinzufüge.
Ich möchte die Größe meines Fensters ändern können, indem ich die Ränder meines Inhaltsbereichs ziehe. Um die Mechanismen zur Größenänderung des Systems zu nutzen, füge ich in den leeren Bereichen rund um den Inhaltsbereich eine MouseArea hinzu, mit einem DragHandler darin, der bei Aktivierung startSystemResize aufruft.
Anscheinend ist das eine Lösung, die unter Windows funktioniert, aber ich finde keine Möglichkeit, sie auf meinen MacOS zum Laufen zu bringen. Die Funktion startSystemResize scheint ständig false zurückzugeben.
Irgendwelche Ideen?
Hier ist ein Testprojekt.
main.qml:
Code: Select all
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
id: mainWindow
width: 1000
height: 600
visible: true
color: "#00000000"
flags: Qt.FramelessWindowHint | Qt. Window
MouseArea {
id: leftMouseArea
width: 20
anchors.left: parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.topMargin: 20
anchors.bottomMargin: 20
cursorShape: Qt.SizeHorCursor
hoverEnabled: true
onEntered: console.log("left area enter")
onExited: console.log("left area exit")
DragHandler {
id: leftResizeHandler
target: null
onActiveChanged: if(active) {
if(!mainWindow.startSystemResize(Qt.LeftEdge)) {
console.log("System resize not supported on this platform.")
}
}
}
}
Rectangle {
id: contentArea
anchors.fill: parent
anchors.margins: 20
color: "white"
}
}
Code: Select all
import sys
import os
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
if __name__ == "__main__":
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(os.path.join(os.path.dirname(__file__), "main.qml"))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec())
Mobile version