今天给大家分享:
如何用 Qt 实现一个电子相框。
运行效果:
代码链接:
实现难度:
★★★☆☆
访问照片
Window {[...]FileDialog {[...]onAccepted: folderModel.folder = fileUrl + &34;}Item {[...]Repeater {model: FolderListModel {id: folderModel}Rectangle {[...]Image {[...]source: folderModel.folder + fileName}}}}Image {source: &34;MouseArea {onClicked: fileDialog.open()}}}
FileDialog 用于提供选择文件 / 目录的功能, 这里我们通过它来选择照片所在目录。
Repeater 会根据 model 里数据重复构建多个一样的控件,这里我们通过它来创建所有照片载体控件。
小学生手工制作相框,Repeater 的数据源是 FolderListModel,FolderListModel 提供的数据是一个目录下的所有内容,这里对应的就是照片了。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。
13、相框竖放的效果,大家还可以给相框做下装饰,比如剪些爱心或小花贴于4个角处。
运行效果:
我选择的目录里放着 3 张公众号的头像,但是这里只看到一张头像,这是因为它们都重叠在一起了。
设置初始状态
Item {[...]Repeater {[...]Rectangle {id: photoFrame// 随机缩放照片scale: root.height / Math.max(image.sourceSize.width,image.sourceSize.height) * Math.max(0.3,Math.random())[...]Component.onCompleted: {// 随机生成照片的位置和旋转角度 x = Math.random() * root.width - width/2y = Math.random() * root.height - height/2rotation = Math.random() * 20 - 10}Image {id: imagesource: folderModel.folder + fileName[...]}}}}
scale 属性用于支持照片的缩放。
运行效果:
为了说明是不同的文件,我把文件名显示出来了。
可以看到,已经支持在初始化时随机摆放和缩放照片了。
1、用美工刀裁剪一块长方形的硬纸板,用水彩笔画出相框的内框,用美工刀切掉内面,用剪刀裁剪出相对的花布,从当中切开。3、再用美工刀裁剪出的一块长方形硬纸板(与相框外框大小相等)用来当相框背板。4、用胶枪将相框背。
但是,此时无法单独移动某张照片。
支持移动照片
Rectangle {id: photoFrame[...]MouseArea {id: dragAreaanchors.fill: parentdrag.target: photoFrameonPressed: {photoFrame.z = ++root.highestZ;console.log(photoFrame.z)}}}
MouseArea 用于支持鼠标点击事件,当用户点击某张图片时,我们将其 z 属性调整为最大值。
z 属性用于设置控件的 z 轴坐标,z 值越大,显示的优先级越高。
drag.target 则用于支持拖动事件。
运行效果:
被选中的照片会显示在最上层,然后通过鼠标可以移动被选中的照片。
支持缩放照片
Rectangle {id: photoFrame[...]MouseArea {id: dragArea[...]onWheel: {if (wheel.modifiers & Qt.ControlModifier) {photoFrame.rotation += wheel.angleDelta.y / 120 * 5;if (Math.abs(photoFrame.rotation) < 4)photoFrame.rotation = 0;} else {photoFrame.scale += photoFrame.scale * wheel.angleDelta.y / 120 / 10;if (photoFrame.scale < 0.1)photoFrame.scale = 0.1}}}}
MouseArea.wheel 用于处理鼠标滚轮事件。
当按住 Ctrl 键时,滚动滚轮改变照片的旋转角度。
当不按住 Ctrl 键时,滚动滚轮改变照片的大小。
运行效果:
定时更新内容
Shortcut 用于创建键盘快捷键功能,这里绑定的是 F5 键。
运行效果:
我将自动刷新的时间设置为 3 秒,先让它自动刷新,然后我手动按下了 F5, 也刷新成功。
1、第一步,准备一张长方形的瓦楞纸,如下图所示,使用尺子和笔将瓦楞纸分成三等份。2、第二步,使用美工刀轻轻的划过刚才做的标记,如下图所示。3、第三步,拿照片在瓦楞纸上画出照片的位置点,如下图所示。
感谢阅读~~~
文章转载自:老吴嵌入式
把彩纸左右两边抹上胶,把两边粘在一起,上方不粘,留着开口,用来插入相片。再从彩纸上剪下一个小纸条,把两端粘在一起,成一个水滴状。用手把纸条的下方捏出两条边,做成相框的支架。把支架的上方抹上胶,粘在相框。