examples/qml/main.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
examples/qml/main.qml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/quick/CMakeLists.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/quick/quickwindowagent.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/quick/quickwindowagent.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/quick/qwkquickglobal.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/quick/qwkquickglobal.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
examples/qml/main.cpp
@@ -1,3 +1,4 @@ #include <QWKQuick/qwkquickglobal.h> #include <QGuiApplication> #include <QQmlApplicationEngine> @@ -13,6 +14,7 @@ QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); QGuiApplication application(argc, argv); QQmlApplicationEngine engine; QWK::registerTypes(&engine); engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); return application.exec(); } examples/qml/main.qml
@@ -1,9 +1,41 @@ import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15 import QWindowKit 1.0 Window { id: window visible: true width: 640 height: 480 color: "#f0f0f0" title: qsTr("Hello, world!") Component.onCompleted: { windowAgent.setup(window) window.visible = true } WindowAgent { id: windowAgent } Rectangle { id: titleBar anchors { top: parent.top left: parent.left right: parent.right } height: 32 color: "white" Component.onCompleted: windowAgent.setTitleBar(titleBar) Text { anchors.centerIn: parent horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter text: window.title font.pixelSize: 14 color: window.active ? "black" : "gray" } } } src/quick/CMakeLists.txt
@@ -5,6 +5,7 @@ set(_src qwkquickglobal.h qwkquickglobal.cpp quickitemdelegate_p.h quickitemdelegate.cpp quickwindowagent.h src/quick/quickwindowagent.cpp
@@ -72,12 +72,12 @@ return d->context->isHitTestVisible(item); } void QuickWindowAgent::setHitTestVisible(const QQuickItem *item, bool visible) { void QuickWindowAgent::setHitTestVisible_item(const QQuickItem *item, bool visible) { Q_D(QuickWindowAgent); d->context->setHitTestVisible(item, visible); } void QuickWindowAgent::setHitTestVisible(const QRect &rect, bool visible) { void QuickWindowAgent::setHitTestVisible_rect(const QRect &rect, bool visible) { Q_D(QuickWindowAgent); d->context->setHitTestVisible(rect, visible); } src/quick/quickwindowagent.h
@@ -19,17 +19,20 @@ ~QuickWindowAgent() override; public: bool setup(QQuickWindow *window); Q_INVOKABLE bool setup(QQuickWindow *window); const QQuickItem *titleBar() const; void setTitleBar(const QQuickItem *item); Q_INVOKABLE const QQuickItem *titleBar() const; Q_INVOKABLE void setTitleBar(const QQuickItem *item); const QQuickItem *systemButton(SystemButton button) const; void setSystemButton(SystemButton button, const QQuickItem *item); Q_INVOKABLE const QQuickItem *systemButton(SystemButton button) const; Q_INVOKABLE void setSystemButton(SystemButton button, const QQuickItem *item); bool isHitTestVisible(const QQuickItem *item) const; void setHitTestVisible(const QQuickItem *item, bool visible = true); void setHitTestVisible(const QRect &rect, bool visible = true); Q_INVOKABLE bool isHitTestVisible(const QQuickItem *item) const; Q_INVOKABLE inline void setHitTestVisible(const QQuickItem *item, bool visible = true) { setHitTestVisible_item(item, visible); } Q_INVOKABLE void setHitTestVisible_item(const QQuickItem *item, bool visible = true); Q_INVOKABLE void setHitTestVisible_rect(const QRect &rect, bool visible = true); Q_SIGNALS: void titleBarWidgetChanged(const QQuickItem *item); src/quick/qwkquickglobal.cpp
New file @@ -0,0 +1,22 @@ #include "qwkquickglobal.h" #include "quickwindowagent.h" #include <QtQml/QQmlEngine> namespace QWK { static constexpr const char kModuleUri[] = "QWindowKit"; void registerTypes(QQmlEngine *engine) { Q_UNUSED(engine); static bool once = false; if (once) { return; } once = true; qmlRegisterType<QuickWindowAgent>(kModuleUri, 1, 0, "WindowAgent"); qmlRegisterModule(kModuleUri, 1, 0); } } src/quick/qwkquickglobal.h
@@ -15,4 +15,14 @@ # endif #endif QT_BEGIN_NAMESPACE class QQmlEngine; QT_END_NAMESPACE namespace QWK { QWK_QUICK_EXPORT void registerTypes(QQmlEngine *engine); } #endif // QWKQUICKGLOBAL_H