This commit is contained in:
朱子楚\zhuzi 2023-03-02 23:58:50 +08:00
parent 62500af1bb
commit 5ee8729353
11 changed files with 82 additions and 81 deletions

View File

@ -4,11 +4,12 @@ import FluentUI 1.0
FluWindow {
width: 500
height: 500
height: 600
title:"关于"
FluAppBar{
id:appbar
title:"关于"
}
FluText{

View File

@ -9,10 +9,10 @@ import FluentUI 1.0
FluWindow {
id:rootwindow
width: 800
height: 600
height: 700
title: "FluentUI"
minimumWidth: 600
minimumHeight: 400
minimumHeight: 500
FluAppBar{
id:appbar
@ -61,17 +61,6 @@ FluWindow {
page:"qrc:/T_Typography.qml"
}
}
FluMenu{
id:menu
FluMenuItem{
text:"123"
}
FluMenuItem{
text:"456"
}
}
}
FluIconButton{
@ -82,8 +71,25 @@ FluWindow {
leftMargin: 12
bottomMargin: 12
}
FluMenu{
id:menu
x:40
margins:4
FluMenuItem{
text:"关于"
onClicked:{
FluApp.navigate("/About")
}
}
FluMenuItem{
text:"设置"
onClicked:{
FluApp.navigate("/Setting")
}
}
}
onClicked:{
menu.popup()
menu.open()
}
}

View File

@ -4,11 +4,12 @@ import FluentUI 1.0
FluWindow {
width: 500
height: 500
height: 600
title:"设置"
FluAppBar{
id:appbar
title:"设置"
}
FluText{

View File

@ -41,11 +41,10 @@ void FluApp::navigate(const QString& route){
}
bool isAppWindow = route==initialRoute();
FramelessView *view = new FramelessView();
view->setColor(QColor(0,0,0,0));
view->setColor(QColor(Qt::transparent));
QObject::connect(view, &QQuickView::statusChanged, view, [&](QQuickView::Status status) {
if (status == QQuickView::Status::Ready) {
Q_EMIT windowReady(view);
view->moveToScreenCenter();
view->show();
}

View File

@ -16,7 +16,6 @@ FramelessView::FramelessView(QWindow *parent) : Super(parent), d(new FramelessVi
{
setFlags(Qt::CustomizeWindowHint | Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
setResizeMode(SizeRootObjectToView);
setIsMax(windowState() == Qt::WindowMaximized);
setIsFull(windowState() == Qt::WindowFullScreen);
connect(this, &QWindow::windowStateChanged, this, [&](Qt::WindowState state) {

View File

@ -21,13 +21,10 @@ static bool isFullWin(QQuickView* win)
{
return win->windowState() == Qt::WindowFullScreen;
}
FramelessView::FramelessView(QWindow *parent) : Super(parent), d(new FramelessViewPrivate)
{
setFlags(Qt::CustomizeWindowHint | Qt::Window | Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
setResizeMode(SizeRootObjectToView);
setIsMax(windowState() == Qt::WindowMaximized);
setIsFull(windowState() == Qt::WindowFullScreen);
connect(this, &QWindow::windowStateChanged, this, [&](Qt::WindowState state) {

View File

@ -4,5 +4,5 @@ import QtGraphicalEffects 1.15
DropShadow {
radius: 5
samples: 4
color: FluApp.isDark ? "#80FFFFFF" : "#80000000"
color: FluApp.isDark ? "#80FFFFFF" : "#40000000"
}

View File

@ -1,41 +1,26 @@
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import QtQuick.Controls.impl 2.15
import QtQuick.Templates 2.15 as T
import QtQuick.Window 2.15
import QtGraphicalEffects 1.15
T.Menu {
id: control
Popup {
id: popup
default property alias content: container.children
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
contentHeight + topPadding + bottomPadding)
margins: 0
delegate: FluMenuItem { }
contentItem: ListView {
implicitHeight: contentHeight
model: control.contentModel
interactive: Window.window ? contentHeight > Window.window.height : false
clip: true
currentIndex: control.currentIndex
ScrollIndicator.vertical: ScrollIndicator {}
}
background: Item {
implicitWidth: 122
implicitHeight: 30
Rectangle{
anchors.fill: parent
color: "#FFFFFF"
layer.effect: FluDropShadow{}
layer.enabled: true
background: FluRectangle {
implicitWidth: 140
implicitHeight: container.height
color:FluApp.isDark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(237/255,237/255,237/255,1)
radius: [5,5,5,5]
layer.effect: FluDropShadow{}
layer.enabled: true
Column{
spacing: 5
topPadding: 5
bottomPadding: 5
id:container
function closePopup(){
popup.close()
}
}
}
}

View File

@ -1,29 +1,40 @@
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Controls.impl 2.15
import QtQuick.Templates 2.15 as T
import QtQuick.Shapes 1.15
T.MenuItem {
id: control
Item {
implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
implicitContentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
implicitContentHeight + topPadding + bottomPadding,
implicitIndicatorHeight + topPadding + bottomPadding)
padding: 0
spacing: 6
id:root
width: 140
height: 32
contentItem: FluText {
text: control.text
property string text: "MenuItem"
signal clicked
Rectangle{
anchors.centerIn: parent
width: 100
height: 32
radius: 4
color:{
if(mouse_area.containsMouse){
return FluApp.isDark ? Qt.rgba(56/255,56/255,56/255,1) : Qt.rgba(230/255,230/255,230/255,1)
}
return FluApp.isDark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(237/255,237/255,237/255,1)
}
FluText{
text: root.text
anchors.centerIn: parent
}
MouseArea{
id:mouse_area
hoverEnabled: true
anchors.fill: parent
onClicked: {
root.clicked()
root.parent.closePopup()
}
}
}
background: Rectangle {
implicitWidth: 120
implicitHeight: 30
width: control.width
height: control.height
}
}

View File

@ -14,7 +14,7 @@ Item{
id:container
width: root.width
height: root.height
visible: false
opacity: 0
color:root.color
}

View File

@ -46,7 +46,9 @@ Item {
layer.enabled: true
layer.effect: DropShadow {
radius: 5
samples: 4
samples: 5
horizontalOffset: 0
verticalOffset: 0
color: "#40000000"
}
}