Zhao Yuhang
2023-12-18 6500aae0d32383a988aff9fb680d58a851012a14
finish quick demo
3个文件已修改
83 ■■■■ 已修改文件
examples/qml/QWKButton.qml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
examples/qml/main.cpp 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
examples/qml/main.qml 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
examples/qml/QWKButton.qml
@@ -4,20 +4,25 @@
Button {
    id: root
    width: height * 1.5
    leftPadding: 0
    topPadding: 0
    rightPadding: 0
    bottomPadding: 0
    leftInset: 0
    topInset: 0
    rightInset: 0
    bottomInset: 0
    property alias source: image.source
    contentItem: Item {
        anchors.fill: parent
        Image {
            id: image
            anchors.centerIn: parent
            mipmap: true
            width: 10
            height: 10
            width: 12
            height: 12
        }
    }
    background: Rectangle {
        anchors.fill: parent
        color: {
            if (!root.enabled) {
                return "gray";
examples/qml/main.cpp
@@ -6,8 +6,12 @@
int main(int argc, char *argv[]) {
    qputenv("QT_WIN_DEBUG_CONSOLE", "1");
    qputenv("QSG_INFO", "1");
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
    qputenv("QT_QUICK_CONTROLS_STYLE", "Basic");
#if 1
#else
    qputenv("QT_QUICK_CONTROLS_STYLE", "Default");
#endif
#if 0
    qputenv("QSG_RHI_BACKEND", "d3d12");
    qputenv("QSG_RHI_HDR", "scrgb");
    qputenv("QT_QPA_DISABLE_REDIRECTION_SURFACE", "1");
examples/qml/main.qml
@@ -7,11 +7,18 @@
    id: window
    width: 800
    height: 600
    color: "#f0f0f0"
    color: "#1E1E1E"
    title: qsTr("Hello, world!")
    Component.onCompleted: {
        windowAgent.setup(window)
        window.visible = true
    }
    Timer {
        interval: 100
        running: true
        repeat: true
        onTriggered: timeLabel.text = Qt.formatTime(new Date(), "hh:mm:ss")
    }
    WindowAgent {
@@ -27,16 +34,33 @@
            right: parent.right
        }
        height: 32
        color: "white"
        color: window.active ? "#3C3C3C" : "#505050"
        Component.onCompleted: windowAgent.setTitleBar(titleBar)
        Image {
            id: iconButton
            anchors {
                verticalCenter: parent.verticalCenter
                left: parent.left
                leftMargin: 10
            }
            width: 18
            height: 18
            mipmap: true
            source: "qrc:///app/example.png"
        }
        Text {
            anchors.centerIn: parent
            anchors {
                verticalCenter: parent.verticalCenter
                left: iconButton.right
                leftMargin: 10
            }
            horizontalAlignment: Text.AlignHCenter
            verticalAlignment: Text.AlignVCenter
            text: window.title
            font.pixelSize: 14
            color: window.active ? "black" : "gray"
            color: "#ECECEC"
        }
        Row {
@@ -51,7 +75,7 @@
                height: parent.height
                source: "qrc:///window-bar/minimize.svg"
                onClicked: window.showMinimized()
                Component.onCompleted: windowAgent.setHitTestVisible(minButton)
                Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Minimize, minButton)
            }
            QWKButton {
@@ -65,16 +89,40 @@
                        window.showMaximized()
                    }
                }
                Component.onCompleted: windowAgent.setHitTestVisible(maxButton)
                Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Maximize, maxButton)
            }
            QWKButton {
                id: closeButton
                height: parent.height
                source: "qrc:///window-bar/close.svg"
                background: Rectangle {
                    color: {
                        if (!closeButton.enabled) {
                            return "gray";
                        }
                        if (closeButton.pressed) {
                            return "#e81123";
                        }
                        if (closeButton.hovered) {
                            return "#e81123";
                        }
                        return "transparent";
                    }
                }
                onClicked: window.close()
                Component.onCompleted: windowAgent.setHitTestVisible(closeButton)
                Component.onCompleted: windowAgent.setSystemButton(WindowAgent.Close, closeButton)
            }
        }
    }
    Label {
        id: timeLabel
        anchors.centerIn: parent
        font {
            pointSize: 75
            bold: true
        }
        color: "#FEFEFE"
    }
}