QT WIN11 FluentUI APP开发

server/2024/12/23 6:27:37/
代码
import QtQuick
import QtQuick.Controls
import FluentUIItem {property bool autoPlay: trueproperty int loopTime: 2000property var modelproperty Component delegateproperty bool showIndicator: trueproperty int indicatorGravity : Qt.AlignBottom | Qt.AlignHCenterproperty int indicatorMarginLeft: 0property int indicatorMarginRight: 0property int indicatorMarginTop: 0property int indicatorMarginBottom: 20property int indicatorSpacing: 10property alias indicatorAnchors: layout_indicator.anchorsproperty Component indicatorDelegate : com_indicatorid:controlwidth: 400height: 300ListModel{id:content_model}QtObject{id:dproperty bool flagXChanged: trueproperty bool isAnimEnable: control.autoPlay && list_view.count>3function setData(data){if(!data){return}content_model.clear()content_model.append(data[data.length-1])content_model.append(data)content_model.append(data[0])list_view.highlightMoveDuration = 0list_view.currentIndex = 1list_view.highlightMoveDuration = 250if(d.isAnimEnable){timer_run.restart()}}}ListView{id:list_viewanchors.fill: parentsnapMode: ListView.SnapOneItemclip: trueboundsBehavior: ListView.StopAtBoundsmodel:content_modelmaximumFlickVelocity: 4 * (list_view.orientation === Qt.Horizontal ? width : height)preferredHighlightBegin: 0preferredHighlightEnd: 0highlightMoveDuration: 0Component.onCompleted: {d.setData(control.model)}interactive: list_view.count>3Connections{target: controlfunction onModelChanged(){d.setData(control.model)}}orientation : ListView.Horizontaldelegate: Item{id:item_controlwidth: ListView.view.widthheight: ListView.view.heightproperty int displayIndex: {if(index === 0)return content_model.count-3if(index === content_model.count-1)return 0return index-1}FluLoader{property int displayIndex : item_control.displayIndexproperty var model: list_view.model.get(index)anchors.fill: parentsourceComponent: {if(model){return control.delegate}return undefined}}}onMovementEnded:{currentIndex = list_view.contentX/list_view.widthif(currentIndex === 0){currentIndex = list_view.count-2}else if(currentIndex === list_view.count-1){currentIndex = 1}d.flagXChanged = falsetimer_run.restart()}onMovementStarted: {d.flagXChanged = truetimer_run.stop()}onContentXChanged: {if(d.flagXChanged){var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width)var minY = Math.max(0,(list_view.width*(currentIndex-1)))if(contentX>=maxX){contentX = maxX}if(contentX<=minY){contentX = minY}}}}Component{id:com_indicatorRectangle{width:  8height: 8radius: 4FluShadow{radius: 4}scale: checked ? 1.2 : 1color: checked ?  FluTheme.primaryColor : Qt.rgba(1,1,1,0.7)border.width: mouse_item.containsMouse ? 1 : 0border.color: FluTheme.primaryColorMouseArea{id:mouse_itemhoverEnabled: trueanchors.fill: parentonClicked: {changedIndex(realIndex)}}}}Row{id:layout_indicatorspacing: control.indicatorSpacinganchors{horizontalCenter:(indicatorGravity & Qt.AlignHCenter) ? parent.horizontalCenter : undefinedverticalCenter: (indicatorGravity & Qt.AlignVCenter) ? parent.verticalCenter : undefinedbottom: (indicatorGravity & Qt.AlignBottom) ? parent.bottom : undefinedtop: (indicatorGravity & Qt.AlignTop) ? parent.top : undefinedleft: (indicatorGravity & Qt.AlignLeft) ? parent.left : undefinedright: (indicatorGravity & Qt.AlignRight) ? parent.right : undefinedbottomMargin: control.indicatorMarginBottomleftMargin: control.indicatorMarginBottomrightMargin: control.indicatorMarginBottomtopMargin: control.indicatorMarginBottom}visible: showIndicatorRepeater{id:repeater_indicatormodel: list_view.countFluLoader{property int displayIndex: {if(index === 0)return list_view.count-3if(index === list_view.count-1)return 0return index-1}property int realIndex: indexproperty bool checked: list_view.currentIndex === indexsourceComponent: {if(index===0 || index===list_view.count-1)return undefinedreturn control.indicatorDelegate}}}}Timer{id:timer_animinterval: 250onTriggered: {list_view.highlightMoveDuration = 0if(list_view.currentIndex === list_view.count-1){list_view.currentIndex = 1}}}Timer{id:timer_runinterval: control.loopTimerepeat: d.isAnimEnableonTriggered: {list_view.highlightMoveDuration = 250list_view.currentIndex = list_view.currentIndex+1timer_anim.start()}}function changedIndex(index){d.flagXChanged = truetimer_run.stop()list_view.currentIndex = indexd.flagXChanged = falseif(d.isAnimEnable){timer_run.restart()}}
}
效果 

 

参考

https://github.com/zhuzichu520/FluentUI

GitHub - zhuzichu520/FluentPlayer

GitHub - zhuzichu520/QtHub

https://blog.51cto.com/u_6343747/5465068

Felgo简介--Qt开发者的福音-CSDN博客


创作不易,小小的支持一下吧!


http://www.ppmy.cn/server/104106.html

相关文章

前端CSS选择器

css 和html 三种表示方式 行内样式 >内部样式>外部样式 元素选择器 属性选择器 id选择器 选择id为bb的 &#xff0c;给他增添样式 class选择器以 .开头 用法和id差不都 包含选择器和父子选择器 兄弟选择器 选择器组合 伪元素选择器 首字母格式不一样 首行格式不一样 …

文本分类任务算法演变(二)

文本分类任务算法演变 1.深度学习-pipeline1.1fastText1.2LSTM1.2.1公式详解1.2.2可视化 1.3TextCNN1.4Gated CNN1.5TextRCNN1.6Bert1.6.1取[cls] token对应的向量1.6.2将整句话的向量取max/average pooling1.6.3将Bert编码后的向量再输入LSTM或CNN1.6.4将Bert中间层的结果取出…

LlamaIndex 实现 RAG (一)

理解过 LlamaIndex 的功能之后&#xff0c;本文通过 LlamaIndex 快速实现一个简单的 RAG 应用&#xff0c;主要包括以下几个部分&#xff1a; 创建知识库&#xff0c;并进行 Embedding集成本地 Ollama 模型或者 Qwen 模型通过 Streamlit 可视化 RAG 文末提供了源代码地址 创…

火爆国内外的《黑神话:悟空》,需要什么显卡才能玩?

一路西行&#xff0c;大圣归来&#xff01; 8月20日&#xff0c;国产游戏《黑神话&#xff1a;悟空》上午10时正式上线。这款游戏在Steam平台的同时在线玩家突破了114万&#xff0c;超越《CS2》登顶Steam热玩榜。 仅单日实际在线人数就超过了210万 &#xff0c;超过《幻兽帕鲁…

手动修改zk类型的kafka offset

手动修改zk类型的 offset: 连接到ZooKeeper ./zkCli.sh -server ..123:2181,.…87.124:2181,1*.*.87.125:2181 查找并修改ae_spark这个topic的消费者组的offset值 对于每个分区&#xff08;0、1、2&#xff09;&#xff0c;需要分别查看和修改offset值 查看和修改分区0的offs…

【中仕公考怎么样】公务员行测考什么内容?

行政职业能力测验&#xff0c;也就是我们常说的“行测”。是公务员考试笔试环节中的核心科目&#xff0c;占据总成绩的50%。主要考察考生在言语理解与表达、数量关系、判断推理、资料分析和常识判断方面的能力。 国考行测分为副省级、地市级以及行政执法类&#xff0c;题目数量…

php7.1编译安装

1.安装必要的工具&#xff1a; 首先确保您已经安装了 Xcode 和 Command Line Tools&#xff1a;xcode-select --install2.下载 PHP 7.1 源代码&#xff1a; 访问 PHP 官方网站下载 PHP 7.1 的源代码&#xff1a; wget https://www.php.net/distributions/php-7.1.33.tar.gz t…

vue3中的组件通信

props通信 可以实现父子组件通信&#xff0c;props数据还是只读的&#xff01;&#xff01;&#xff01; <template><div class"box"><h1>props:我是父组件曹操</h1><hr /><Child info"我是曹操" :money"money&qu…