In QML funktioniert startSystemResize unter macOS nichtPython

Python-Programme
Anonymous
 In QML funktioniert startSystemResize unter macOS nicht

Post by Anonymous »

Ich entwickle ein rahmenloses Fenster mit QML und Python 3.13.8, PySide6 und QtQuick. Ich arbeite mit macOS Sequoia 15.2.
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"
}
}
main.py:

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())

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post