没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:鲍佳佳|2020-08-07 11:44:26.383|阅读 237 次
概述:Qt是目前最先进、最完整的跨平台C++开发工具,本文是一个关于使用Qt创建闹钟程序系列教程,下文是有关创建闹钟程序部分源代码,完整源代码请关注后续文章。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
Qt是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。
本文是一个关于使用Qt创建闹钟程序系列教程,下文是有关创建闹钟程序部分源代码,完整源代码请关注后续文章。
AlarmDelegate.qml
主屏幕中的每个警报都是一个ItemDelegate。该ItemDelegate root包含主屏幕和详细信息屏幕上的所有领域。仅在单击警报后(即,root.checked是时),才能看到详细信息屏幕的字段true。
ItemDelegate { id: root width: parent.width checkable: true onClicked: ListView.view.currentIndex = index contentItem: ColumnLayout { spacing: 0 RowLayout { ColumnLayout { id: dateColumn readonly property date alarmDate: new Date( model.year, model.month - 1, model.day, model.hour, model.minute) Label { id: timeLabel font.pixelSize: Qt.application.font.pixelSize * 2 text: dateColumn.alarmDate.toLocaleTimeString(window.locale, Locale.ShortFormat) } RowLayout { Label { id: dateLabel text: dateColumn.alarmDate.toLocaleDateString(window.locale, Locale.ShortFormat) } Label { id: alarmAbout text: "⸱ " + model.label visible: model.label.length > 0 && !root.checked } } } Item { Layout.fillWidth: true } Switch { checked: model.activated Layout.alignment: Qt.AlignTop onClicked: model.activated = checked } } CheckBox { id: alarmRepeat text: qsTr("Repeat") checked: model.repeat visible: root.checked onToggled: model.repeat = checked } Flow { visible: root.checked && model.repeat Layout.fillWidth: true Repeater { id: dayRepeater model: daysToRepeat delegate: RoundButton { text: Qt.locale().dayName(model.dayOfWeek, Locale.NarrowFormat) flat: true checked: model.repeat checkable: true Material.background: checked ? Material.accent : "transparent" onToggled: model.repeat = checked } } } TextField { id: alarmDescriptionTextField placeholderText: qsTr("Enter description here") cursorVisible: true visible: root.checked text: model.label onTextEdited: model.label = text } Button { id: deleteAlarmButton text: qsTr("Delete") width: 40 height: 40 visible: root.checked onClicked: root.ListView.view.model.remove(root.ListView.view.currentIndex, 1) } } }AlarmModel.qml
该QML文件包含管理闹钟数据alarmModel的ListModel的定义。
它使用示例闹钟创建五个ListElement。
import QtQuick 2.11 QtQuick 2.11 // Populate the model with some sample data. ListModel { { id: alarmModel ListElement { { hour: 6 minute: 0 day: 2 month: 8 year: 2018 activated: true label: "Wake up" repeat: true daysToRepeat: [ [ ListElement { { dayOfWeek: 0; repeat: false }, }, ListElement { { dayOfWeek: 1; repeat: false }, }, ListElement { { dayOfWeek: 2; repeat: false }, }, ListElement { { dayOfWeek: 3; repeat: false }, }, ListElement { { dayOfWeek: 4; repeat: false }, }, ListElement { { dayOfWeek: 5; repeat: false }, }, ListElement { { dayOfWeek: 6; repeat: false }} ]] }} ListElement { { hour: 6 minute: 0 day: 3 month: 8 year: 2018 activated: true label: "Wake up" repeat: true daysToRepeat: [ [ ListElement { { dayOfWeek: 0; repeat: true }, }, ListElement { { dayOfWeek: 1; repeat: true }, }, ListElement { { dayOfWeek: 2; repeat: true }, }, ListElement { { dayOfWeek: 3; repeat: true }, }, ListElement { { dayOfWeek: 4; repeat: true }, }, ListElement { { dayOfWeek: 5; repeat: false }, }, ListElement { { dayOfWeek: 6; repeat: false }} ]] }} ListElement { { hour: 7 minute: 0 day: 3 month: 8 year: 2018 activated: false label: "Exercise" repeat: true daysToRepeat: [ [ ListElement { { dayOfWeek: 0; repeat: true }, }, ListElement { { dayOfWeek: 1; repeat: true }, }, ListElement { { dayOfWeek: 2; repeat: true }, }, ListElement { { dayOfWeek: 3; repeat: true }, }, ListElement { { dayOfWeek: 4; repeat: true }, }, ListElement { { dayOfWeek: 5; repeat: true }, }, ListElement { { dayOfWeek: 6; repeat: true }} ]] }} ListElement { { hour: 5 minute: 15 day: 1 month: 9 year: 2018 activated: true label: "" repeat: false daysToRepeat: [ [ ListElement { { dayOfWeek: 0; repeat: false }, }, ListElement { { dayOfWeek: 1; repeat: false }, }, ListElement { { dayOfWeek: 2; repeat: false }, }, ListElement { { dayOfWeek: 3; repeat: false }, }, ListElement { { dayOfWeek: 4; repeat: false }, }, ListElement { { dayOfWeek: 5; repeat: false }, }, ListElement { { dayOfWeek: 6; repeat: false }} ]] }} ListElement { { hour: 5 minute: 45 day: 3 month: 9 year: 2018 activated: false label: "" repeat: false daysToRepeat: [ [ ListElement { { dayOfWeek: 0; repeat: false }, }, ListElement { { dayOfWeek: 1; repeat: false }, }, ListElement { { dayOfWeek: 2; repeat: false }, }, ListElement { { dayOfWeek: 3; repeat: false }, }, ListElement { { dayOfWeek: 4; repeat: false }, }, ListElement { { dayOfWeek: 5; repeat: false }, }, ListElement { { dayOfWeek: 6; repeat: false }} ]] }} }}
如果你对我们的产品感兴趣或者有任何疑问,欢迎咨询慧都在线客服>>
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:Qt在许多企业应用程序中,从 Visio 文件读取形状数据是一项常见需求,因为这些应用程序中的图表都包含有意义的元数据。本教程将借助Aspose.Diagram,以清晰实用的方式指导您使用 C# 读取形状数据。
PDF 的页面大小决定了其内容的显示、打印或处理方式。在准备打印、转换格式或标准化布局时,我们通常需要更改PDF文档的纸张大小。在本教程中,您将学习如何使用 Java 编辑任何 PDF 文件的页面大小。我们将通过完整的代码示例,逐步指导您完成操作。
本文主要介绍如何使用DevExpress WPF Grid控件中的节点(Nodes)概述,欢迎下载最新版组件体验!
本教程提供DevExpress WinFormsWinExplorer视图的基本信息,欢迎下载最新版组件体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号