From 88437b5fb9c8a1fc73710b6c9d590eddb3d747dc Mon Sep 17 00:00:00 2001 From: wuyize Date: Fri, 16 Jun 2023 21:07:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5LoginPage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AicsKnowledgeBase/.editorconfig | 2 + AicsKnowledgeBase/CMakeLists.txt | 28 ++++- AicsKnowledgeBase/main.cpp | 19 --- AicsKnowledgeBase/qml/LoginPage.qml | 128 ++++++++++++++++++++ AicsKnowledgeBase/{ => qml}/main.qml | 0 AicsKnowledgeBase/res/login_background.webp | Bin 0 -> 29482 bytes AicsKnowledgeBase/src/main.cpp | 57 +++++++++ README.md | 2 +- 8 files changed, 213 insertions(+), 23 deletions(-) create mode 100644 AicsKnowledgeBase/.editorconfig delete mode 100644 AicsKnowledgeBase/main.cpp create mode 100644 AicsKnowledgeBase/qml/LoginPage.qml rename AicsKnowledgeBase/{ => qml}/main.qml (100%) create mode 100644 AicsKnowledgeBase/res/login_background.webp create mode 100644 AicsKnowledgeBase/src/main.cpp diff --git a/AicsKnowledgeBase/.editorconfig b/AicsKnowledgeBase/.editorconfig new file mode 100644 index 0000000..f8af8bc --- /dev/null +++ b/AicsKnowledgeBase/.editorconfig @@ -0,0 +1,2 @@ +[*] +charset = utf-8 \ No newline at end of file diff --git a/AicsKnowledgeBase/CMakeLists.txt b/AicsKnowledgeBase/CMakeLists.txt index 71afe59..ef8b931 100644 --- a/AicsKnowledgeBase/CMakeLists.txt +++ b/AicsKnowledgeBase/CMakeLists.txt @@ -5,16 +5,38 @@ project(AicsKnowledgeBase LANGUAGES CXX) set(CMAKE_AUTOMOC ON) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(Qt6 6.2 COMPONENTS Quick REQUIRED) +find_package(Qt6 COMPONENTS Quick REQUIRED) + +#遍历所有Cpp文件 +file(GLOB_RECURSE CPP_FILES src/*.cpp src/*.h) +foreach(filepath ${CPP_FILES}) + string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath}) + list(APPEND sources_files ${filename}) +endforeach(filepath) + +#遍历所有qml文件 +file(GLOB_RECURSE QML_PATHS qml/*.qml) +foreach(filepath ${QML_PATHS}) + string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath}) + list(APPEND qml_files ${filename}) +endforeach(filepath) + +#遍历所有资源文件 +file(GLOB_RECURSE RES_PATHS res/*.png res/*.jpg res/*.svg res/*.ico res/*.ttf res/*.webp res/qmldir) +foreach(filepath ${RES_PATHS}) + string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath}) + list(APPEND resource_files ${filename}) +endforeach(filepath) qt_add_executable(AicsKnowledgeBase - main.cpp + ${sources_files} ) qt_add_qml_module(AicsKnowledgeBase URI AicsKnowledgeBase VERSION 1.0 - QML_FILES main.qml + QML_FILES ${qml_files} + RESOURCES ${resource_files} ) set_target_properties(AicsKnowledgeBase PROPERTIES diff --git a/AicsKnowledgeBase/main.cpp b/AicsKnowledgeBase/main.cpp deleted file mode 100644 index ca036e0..0000000 --- a/AicsKnowledgeBase/main.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - - -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); - - QQmlApplicationEngine engine; - const QUrl url(u"qrc:/AicsKnowledgeBase/main.qml"_qs); - QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, - &app, [url](QObject *obj, const QUrl &objUrl) { - if (!obj && url == objUrl) - QCoreApplication::exit(-1); - }, Qt::QueuedConnection); - engine.load(url); - - return app.exec(); -} diff --git a/AicsKnowledgeBase/qml/LoginPage.qml b/AicsKnowledgeBase/qml/LoginPage.qml new file mode 100644 index 0000000..5c67daa --- /dev/null +++ b/AicsKnowledgeBase/qml/LoginPage.qml @@ -0,0 +1,128 @@ +import QtQuick +import FluentUI +import QtQuick.Controls +import QtQuick.Window +import QtQuick.Layouts +import org.wangwenx190.FramelessHelper + +FluWindow{ + width: 640 + height: 480 + visible: true + title: qsTr("Hello World") + color: "transparent" + + property alias titleVisible: title_bar.titleVisible + property bool appBarVisible: true + + FluAppBar { + id: title_bar + title: window.title + visible: window.appBarVisible + anchors { + top: parent.top + left: parent.left + right: parent.right + } + darkText: lang.dark_mode + } + + Item{ + id:container + anchors{ + top: title_bar.bottom + left: parent.left + right: parent.right + bottom: parent.bottom + } + clip: true + } + + FramelessHelper{ + id:framless_helper + onReady: { + setTitleBarItem(title_bar) + moveWindowToDesktopCenter() + setHitTestVisible(title_bar.minimizeButton()) + setHitTestVisible(title_bar.maximizeButton()) + setHitTestVisible(title_bar.closeButton()) + setWindowFixedSize(fixSize) + title_bar.maximizeButton.visible = !fixSize + if (blurBehindWindowEnabled) + window.backgroundVisible = false + window.show() + } + } + function setHitTestVisible(com){ + framless_helper.setHitTestVisible(com) + } + + function setTitleBarItem(com){ + framless_helper.setTitleBarItem(com) + } + Row{ + anchors.fill: parent + Item{ + id: introdutcitonItem + height: parent.height + width: parent.width * 0.5 + Image { + anchors.fill: parent + source: "qrc:/AicsKnowledgeBase/res/login_background.webp" + + } + } + Item{ + id: loginItem + height: parent.height + width: parent.width * 0.5 + FluPivot{ + anchors.fill: parent + anchors.margins: 20 + + FluPivotItem{ + title: "Sign in" + contentItem:Column{ + anchors.fill: parent + anchors.margins: 20 + anchors.centerIn: parent + spacing: 12 + + FluTextBox{ + placeholderText: "Account" + id: account + } + FluPasswordBox{ + placeholderText: "Password" + id: password + } + Row{ + spacing: 25 + FluCheckBox{ + text: "Remember me" + } + FluTextButton{ + text: "Forgot your password?" + } + } + FluFilledButton{ + text: "Sign in" + anchors.horizontalCenter: parent.horizontalCenter + normalColor: "green" + } + + + + } + } + FluPivotItem{ + title: "Register" +// Rectangle{ +// anchors.fill: parent +// color: "blue" +// } + } + } + } + } +} diff --git a/AicsKnowledgeBase/main.qml b/AicsKnowledgeBase/qml/main.qml similarity index 100% rename from AicsKnowledgeBase/main.qml rename to AicsKnowledgeBase/qml/main.qml diff --git a/AicsKnowledgeBase/res/login_background.webp b/AicsKnowledgeBase/res/login_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..2641afa55c5c5f7e6340fdd2bd8e248868db5e9f GIT binary patch literal 29482 zcmeFXRdiihvL$-NEK3$MGh58En3-9!n3gvqAUG?4= z@8k9U(9ziE>;(}sX3U7S<;8@B3GD#@6(N3EWmz_S)L;K29D!s4Q4T?#f$}(Vq>B^h z=N09C7FC^s4>h%VMW5z!Oat>xS#xHVw(l=*r-T8-c)NQCzg~D_xBcwg{0M&yf8=fU zE`5J^XWg8A0Cr!MhYZ81#ng2UBa7;s3q;|Cvn)@6SZp7LmV&;4Uw8=-3VzY0v$q z4zcFVazSo?pFoLXqxy2?X6nc_+J9U)cSDC(l&mn;uAQbO^B1=rF7Eyd70pBc0Vo!2 zL_s!&|8rDfVND^igMODaGCcp!z!|iF#5NTL(M8)F6#TxbHQR$~Y=3g4`PfYD_mlPFw@BnaEEj~#T#J3P;dS$Jes)lCxKlaK$53C3_ zZ=DIDrpEZ%09PGn5_mZjbevLK@vWHbul#C9=i0_Mv;6cYla_Z(i*9aB`I?rW&B>Xg z@PdKhy+Z;gEXCgL0E5NiW;+pARQ4sUeQ|Ers=IWyP*rRU2G$)LUHLOa$s7LgAzuwt z8nZP_J{7@8b(jC&2q&LUO-mLTy8|Yv3%u)yn6b(i$Za65G@YY$(m_S>z5N?Th$YWc ze|MBg(6_Mo`M=<(>UH7WPf%&h(T4o*t`n79e}wS_t5-tV?Wl~(g*o>V1QO4xSr~JR zqyWPFKu535aI11jHu@m-{Cc(tN`G5iB|aay$UmjUG&0gNFf`+&PPuS46cH@$eCOF9bq(6gOiJxv#^3oLM!iFxfTbQ>=D9>z49Ug-P|a6R z;h&1_D#+jd{TRWaK&%FLDqu|0k`kXfIpNIfQm?*s#J2x;N7}zfb%jfSU!l1caA1i9 zc7dFL^8tbhWXFgUXB}HO@81{Q7ShxXd683qr8V&Tcau%9xMiRI{je~shTpuA&aPs! zx-VV{2LXj&BR%Kg8e0Ve^oRw*yvV=711%KP_Y7zb~Mur5t}bcShKvU7n4YX)QU>Vsob zlN&FYtq*Wz!SSSnlh2+Qf5i&Y z)f~5jh4FyC`kDkE5e0U9w&IgC1k~`4S}m z5uN<(*t^-SYtn{5zW*dEShc{Xr1^0~clz{QK!YbcGl09Po1!z|&{Dg_&VZ z9WJ8wCn6Lj>Xg_Ya z48`TLd>CHPOk3KUO_Pv7K>+wCBv^7D;!DL>f*u=JW|`Ukb<9RPAF`|V*`XH777qqB z5TY^Bl6%MdJ_?J+&la}S3_91FeA#X&ZNVU)kXBWBouDKBmcp5HOsK1;F|&8h0wZ5* z!W^Cd7eM`Q)cRi};vzxoH^~6a_t;#{+v=619l*AKejk~i7lR;*^49JQLv8wbAU<5X z8HE6HsFOjMThQt~0_!K=2Eq>A+73h)#dh}?g$`yW9Asa$t&1JnGLZY<%)#bs>-l#N z{B^3A-C(-4X7Zqy8|mvRkzkiR^8bOPO+30seqdrmBBuy?VP8|r=GKb%Q*&>>>)&Jv z7fD(tqD2ss-Hj+S;v=iAwVdE>2cMM$1v~qNQ}BDCIr!wY_Rja7-7{vFzsOX7B8dOH`jjss4^uWAD=W&m@ zhWz^!GV!S5L(#BmVfct8FR5<59r$ywk4^tDq{Mat2kWX1$rXx&`iSsI`7$`vGXg_} zz%*Au|8>3#jqTsxlfqIScA9*oaqNv>IihxQa2DAF$8 za$mIwJM;fwflA5YkmDqM&Ob-K*8QK!-#;eFkw47Je<+WWOMHJ;1OuR{3!;WbIg_IP zeL(y}uqv|bNY`{*xQ>30C>6lelA53cEt1SDc0eG5`kx6!`^pO%Nn0;ez3PwT{g5}W z_G}w3fT{X_5!CH@2Xy%*$a0XzNpuR@#DUD0Uck7?>Y+VZKx$#z zteh0lAMrl!I(Xx9bizREL5HL*aTp^z-?+&mAW`zgz9KSKGGkZ!`Kz98mL{uLoG#uR z+oMw<+XD{z14)W$RCXr%kTdYNoGOppl61K(1YK1UWI`heXmyrt;-P>X~zW?AWZ9 zfY19p3-}2g7PP}-W;>$6>KI8dX*i-yTi^;`63}2W#I~}Ofn5_xQjiy|n4N1G7466z zdq$QN2~cSpjr3tdRwY23nn0zFouce?nSW%Cr=P}$TBQ2@-OvA^n}5N@4oRNVkqk1t zwTNOvUf~i?gE<0yCe&M1dF)Mr4^NQm17|=_5LG~%a(RE#;-@_$hwFy``W-(0vjl!- zEg2Z4)W|}N%;^Eabv~hL6%7{@JFX+gL~EpFWXCL%uD__Resf84D6$f^L^in~r=`%# zI!;ZtunMg1!a{jjoMdQYwDGe?cnA8-4wG}Qm8N2=D)D+$6XyYJ-FW1zsoHlHRmfAC zvSZV^%eGpv=CHELkI~*Ml*e6v9zo@F9r9-)F-q+SWH^b9J^0%B=VMzZ9mbf$BjAzESuUcs=&XTG%s>SHu~s()y`pab9- z>W35`=y&cL4g9>kfB2KV{{41xk>a>tPpfpNaxDLFIEo^(1dWOixEcDv(5*U7JNXk~ zL($&xfg0kK3T$BQ!){^U8%K6%9Em|Le_v(C6acIp?Npet5)imbFq65WIY@GT&+jv~ zy_Zn--=%KFhdM6*Q$p`LM{8KGq$*PEFOG~#^MZ`Z*^7tM;hIrw`i8=6Pbilvl=))q{#=RUw85Kx0Zq8mT`z7L6DPl=^wh> z($q(N=8k6EAg`u(H39z43b4^|(EHYfd@!@ag0&Qz(ZFTZqXmf|L#HsagrN({&n+Mm zGDhIU=$u!Mda_Zrvqwdzkacm1JQ$x!A^N!v|1mIo_7R9AUn{>EM?mfjjVtFz0fJEc>}i#ydD0(o^3MU7juOS_ z{BXu#N)>`ZJ-FIMG7m~H8R9g|2t|ywtpy66d8ML`W37@A$)thwAbsT0hE00O)=QsW z5A1S-;||H&GJ;yUb{Xl+v}~YN|5#`;Q%I7#_Hv7HEEfcvIp!-7&wW~y$xc7J9K)Ku%lBkc&L9#y^+yOt)XtJi*Q!4Ab?R+ z=k(WoxCA*9%+?}z8gbCZPwhgDAryE?h$pztHacxuA^jHWjvQ9k#N_qqfW7Z~X>k`M zTu?)12mWP_nIBjCJ8Pfvv}Nd&geq+l{U!Tldpf*3m`CDHZ6a_=3rZfpV57DB1hc?$ zZBt|!-m#BO7YTc62K2lgN%uXmi?3a z+~hGK5r23{hy&@}2sd=KMFU8(G=LFxyi+6WSVwGT6^%JKSG?V!zv%!WdJ321x}8ys zPZrn~X{{#AXMXtaTeu+lz+&%3qufE(e~cQ5((Q^`?)|MIHbQ%(9b)dL;3qCmON@*f zc0X1!u@nLeq#WIekh2mMMt(l72ADR)p(u1Jh#Pb?kAMp?_HxB-xh^Fr#T*p^`p2yL zcYW~h`i;Ht+Qi6~~IaKrNBM!QlCKS#e7xrlcK2QM>+U&U|Xx%Eea_cM6H&t!~ z%@A}^olpFXRtBU*9MblHAFN7D(+xFy&+z>~hP0tZIZ`|!Rq&^egY_Dj2=9Q7W*>K` zrJJMFB4$&3*aUP3;qs}5idcb465Q}hh}3h*pv7{d{Ykr(Ez6zVD$@6q`RgbLa@I6q zVOc7g_|ZIlrI2;Auaok9fB++%Mf|Nh9s;ciPg2q9%FFPUp?SUmLENTm)ZTIPS7b8d zjN^{MSaM^oTc=yn0zIM4{1xHd|6cP~95D>tI&UjF1Pn zYAKsFJZ9>`FVK~WgucK@;bJb~lFjk)R#}=V63F%Kn>(YaFXmIThK0M7v<_}9$C2fN zr^m~s=^o0}RC3_JXfRTz^vT4&4}yd_3E~Pc_K#kP;jc8{TM4jC=*21&?lbhm3^`#u z71HR{7+Au5ho-}mtDuOWLCVnQ-|zn%4r3U*&>Dv&qEpY#&bU>(z>%MnjqJ%+V0m`w z94p06CpM19NTUWbT>^W7Way{$1!W3_sj~G%DPUGJ`BDP&n>AMWNjheYokJ) zy(;gTvyJbJ1{!ypPBXb0B@KamW-C32vs^z8BRSPeVuFKn*Ur9REZL5G%@9Nd&mNCC z>EylhuVPQf2Ksl+X`BtANK@YhLHbc9

3*zQ$! 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 literal 0 HcmV?d00001 diff --git a/AicsKnowledgeBase/src/main.cpp b/AicsKnowledgeBase/src/main.cpp new file mode 100644 index 0000000..6d0b5e4 --- /dev/null +++ b/AicsKnowledgeBase/src/main.cpp @@ -0,0 +1,57 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +FRAMELESSHELPER_USE_NAMESPACE + +int main(int argc, char* argv[]) +{ + //将样式设置为Basic,不然会导致组件显示异常 + qputenv("QT_QUICK_CONTROLS_STYLE", "Basic"); + FramelessHelper::Quick::initialize(); + QGuiApplication app(argc, argv); +#ifdef Q_OS_WIN // 此设置仅在Windows下生效 + FramelessConfig::instance()->set(Global::Option::ForceHideWindowFrameBorder); +#endif + FramelessConfig::instance()->set(Global::Option::DisableLazyInitializationForMicaMaterial); + FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); + FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); + FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); +#ifdef Q_OS_MACOS + FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur, false); +#endif + + QQmlApplicationEngine engine; + FramelessHelper::Quick::registerTypes(&engine); + const QUrl url(u"qrc:/AicsKnowledgeBase/qml/LoginPage.qml"_qs); + QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, + &app, [url](QObject* obj, const QUrl& objUrl) { + if (!obj && url == objUrl) + QCoreApplication::exit(-1); + }, Qt::QueuedConnection); + engine.load(url); + return app.exec(); +} + + + +//int main(int argc, char *argv[]) +//{ +// QGuiApplication app(argc, argv); +// +// QQmlApplicationEngine engine; +// const QUrl url(u"qrc:/AicsKnowledgeBase/main.qml"_qs); +// QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, +// &app, [url](QObject *obj, const QUrl &objUrl) { +// if (!obj && url == objUrl) +// QCoreApplication::exit(-1); +// }, Qt::QueuedConnection); +// engine.load(url); +// +// return app.exec(); +//} diff --git a/README.md b/README.md index 622b9d7..c724861 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Qt 6.4.3:Qt Core, Qt Quick, Qt QML, Qt ShaderTool, Qt 5 Compatibility Module. git clone --recursive http://101.34.228.45:3000/auto/AicsKnowledgeBase_client.git ``` -在调试配置launch.vs.json中添加 +若使用Visual Studio,需配置环境变量Qt_DIR和Qt6_DIR为Qt msvc2019_64目录,然后在调试配置launch.vs.json中添加 ```json "env": {