mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2024-11-23 11:17:15 +08:00
update
This commit is contained in:
parent
9f0b8c5ec5
commit
d71441e7c5
@ -168,5 +168,6 @@
|
||||
<file>qml/page/T_Tooltip.qml</file>
|
||||
<file>qml/page/T_TreeView.qml</file>
|
||||
<file>qml/page/T_Typography.qml</file>
|
||||
<file>qml/page/T_BreadcrumbBar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@ -119,7 +119,8 @@ FluExpander{
|
||||
"FluTheme",
|
||||
"FluStatusView",
|
||||
"FluRatingControl",
|
||||
"FluPasswordBox"
|
||||
"FluPasswordBox",
|
||||
"FluBreadcrumbBar"
|
||||
];
|
||||
code = code.replace(/\n/g, "<br>");
|
||||
code = code.replace(/ /g, " ");
|
||||
|
@ -187,6 +187,12 @@ FluObject{
|
||||
navigationView.push("qrc:/qml/page/T_Pivot.qml")
|
||||
}
|
||||
}
|
||||
FluPaneItem{
|
||||
title:"BreadcrumbBar"
|
||||
onTap:{
|
||||
navigationView.push("qrc:/qml/page/T_BreadcrumbBar.qml")
|
||||
}
|
||||
}
|
||||
FluPaneItem{
|
||||
title:"TabView"
|
||||
image:"qrc:/res/image/control/TabView.png"
|
||||
|
98
example/qml/page/T_BreadcrumbBar.qml
Normal file
98
example/qml/page/T_BreadcrumbBar.qml
Normal file
@ -0,0 +1,98 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Window
|
||||
import FluentUI
|
||||
import "../component"
|
||||
|
||||
FluScrollablePage{
|
||||
|
||||
title:"BreadcurmbBar"
|
||||
leftPadding:10
|
||||
rightPadding:10
|
||||
bottomPadding:20
|
||||
spacing: 0
|
||||
|
||||
Component.onCompleted: {
|
||||
var items = []
|
||||
for(var i=0;i<10;i++){
|
||||
items.push({title:"Item_"+(i+1)})
|
||||
}
|
||||
breadcrumb_1.items = items
|
||||
breadcrumb_2.items = items
|
||||
}
|
||||
|
||||
FluArea{
|
||||
Layout.fillWidth: true
|
||||
height: 68
|
||||
paddings: 10
|
||||
Layout.topMargin: 20
|
||||
|
||||
FluBreadcrumbBar{
|
||||
id:breadcrumb_1
|
||||
width:parent.width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
onClickItem:
|
||||
(model)=>{
|
||||
showSuccess(model.title)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
FluArea{
|
||||
Layout.fillWidth: true
|
||||
height: 100
|
||||
paddings: 10
|
||||
Layout.topMargin: 20
|
||||
|
||||
ColumnLayout{
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width:parent.width
|
||||
spacing: 10
|
||||
|
||||
FluFilledButton{
|
||||
text:"Reset sample"
|
||||
onClicked:{
|
||||
var items = []
|
||||
for(var i=0;i<10;i++){
|
||||
items.push({title:"Item_"+(i+1)})
|
||||
}
|
||||
breadcrumb_2.items = items
|
||||
}
|
||||
}
|
||||
|
||||
FluBreadcrumbBar{
|
||||
id:breadcrumb_2
|
||||
separator:">"
|
||||
spacing:8
|
||||
textSize:18
|
||||
Layout.fillWidth: true
|
||||
onClickItem:
|
||||
(model)=>{
|
||||
//不是点击最后一个item元素
|
||||
if(model.index+1!==count()){
|
||||
breadcrumb_2.remove(model.index+1,count()-model.index-1)
|
||||
}
|
||||
showSuccess(model.title)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CodeExpander{
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: -1
|
||||
code:'FluBreadcrumbBar{
|
||||
width:parent.width
|
||||
separator:">"
|
||||
spacing:8
|
||||
textSize:18
|
||||
onClickItem: (model)=>{
|
||||
|
||||
}
|
||||
}'
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -34,6 +34,7 @@ void Fluent::registerTypes(const char *uri){
|
||||
qmlRegisterType<WindowHelper>(uri,major,minor,"WindowHelper");
|
||||
qmlRegisterType<FluColorSet>(uri,major,minor,"FluColorSet");
|
||||
|
||||
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluBreadcrumbBar.qml"),uri,major,minor,"FluBreadcrumbBar");
|
||||
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluRatingControl.qml"),uri,major,minor,"FluRatingControl");
|
||||
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluStatusView.qml"),uri,major,minor,"FluStatusView");
|
||||
qmlRegisterType(QUrl("qrc:/com.zhuzichu/controls/FluPagination.qml"),uri,major,minor,"FluPagination");
|
||||
|
@ -15,6 +15,9 @@ bool NativeEventFilter::nativeEventFilter(const QByteArray &eventType, void *mes
|
||||
MSG* msg = static_cast<MSG *>(message);
|
||||
if (msg == Q_NULLPTR)
|
||||
return false;
|
||||
if(!FluApp::getInstance()->wnds.contains((WId)msg->hwnd)){
|
||||
return false;
|
||||
}
|
||||
switch(msg->message) {
|
||||
case WM_NCCALCSIZE:{
|
||||
NCCALCSIZE_PARAMS& params = *reinterpret_cast<NCCALCSIZE_PARAMS*>(msg->lParam);
|
||||
|
100
src/controls/FluBreadcrumbBar.qml
Normal file
100
src/controls/FluBreadcrumbBar.qml
Normal file
@ -0,0 +1,100 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
|
||||
property int textSize: 15
|
||||
property string separator: "/"
|
||||
property var items: []
|
||||
property int spacing: 5
|
||||
signal clickItem(var model)
|
||||
|
||||
id:control
|
||||
implicitWidth: 300
|
||||
height: 30
|
||||
|
||||
onItemsChanged: {
|
||||
list_model.clear()
|
||||
list_model.append(items)
|
||||
}
|
||||
|
||||
ListModel{
|
||||
id:list_model
|
||||
}
|
||||
|
||||
ListView{
|
||||
id:list_view
|
||||
width: parent.width
|
||||
height: 30
|
||||
orientation: ListView.Horizontal
|
||||
model: list_model
|
||||
clip: true
|
||||
spacing : control.spacing
|
||||
boundsBehavior: ListView.StopAtBounds
|
||||
remove: Transition {
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
from: 1
|
||||
to: 0
|
||||
duration: 83
|
||||
}
|
||||
}
|
||||
add: Transition {
|
||||
NumberAnimation {
|
||||
properties: "opacity"
|
||||
from: 0
|
||||
to: 1
|
||||
duration: 83
|
||||
}
|
||||
}
|
||||
delegate: Item{
|
||||
height: item_layout.height
|
||||
width: item_layout.width
|
||||
RowLayout{
|
||||
id:item_layout
|
||||
spacing: list_view.spacing
|
||||
height: list_view.height
|
||||
|
||||
FluText{
|
||||
text:model.title
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
color: {
|
||||
if(item_mouse.pressed){
|
||||
return FluTheme.dark ? Qt.rgba(150/255,150/255,150/235,1) : Qt.rgba(134/255,134/255,134/235,1)
|
||||
}
|
||||
if(item_mouse.containsMouse){
|
||||
return FluTheme.dark ? Qt.rgba(204/255,204/255,204/235,1) : Qt.rgba(92/255,92/255,92/235,1)
|
||||
}
|
||||
return FluTheme.dark ? Qt.rgba(255/255,255/255,255/235,1) : Qt.rgba(26/255,26/255,26/235,1)
|
||||
}
|
||||
MouseArea{
|
||||
id:item_mouse
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
control.clickItem(model)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FluText{
|
||||
text:control.separator
|
||||
font.pixelSize: control.textSize
|
||||
visible: list_view.count-1 !== index
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function remove(index,count){
|
||||
list_model.remove(index,count)
|
||||
}
|
||||
|
||||
function count(){
|
||||
return list_model.count
|
||||
}
|
||||
|
||||
}
|
@ -71,5 +71,6 @@
|
||||
<file>controls/FluPaneItemEmpty.qml</file>
|
||||
<file>controls/FluRatingControl.qml</file>
|
||||
<file>controls/FluPasswordBox.qml</file>
|
||||
<file>controls/FluBreadcrumbBar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Loading…
Reference in New Issue
Block a user