加入LoginPage
parent
34ba4f0f8e
commit
88437b5fb9
|
@ -0,0 +1,2 @@
|
|||
[*]
|
||||
charset = utf-8
|
|
@ -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
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
#include <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
|
||||
|
||||
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();
|
||||
}
|
|
@ -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"
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
|
@ -0,0 +1,57 @@
|
|||
#include <QGuiApplication>
|
||||
#include <QQmlApplicationEngine>
|
||||
#include <QQmlContext>
|
||||
#include <QDir>
|
||||
#include <QQuickWindow>
|
||||
#include <QProcess>
|
||||
#include <FramelessHelper/Quick/framelessquickmodule.h>
|
||||
#include <FramelessHelper/Core/private/framelessconfig_p.h>
|
||||
|
||||
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();
|
||||
//}
|
|
@ -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": {
|
||||
|
|
Loading…
Reference in New Issue