本程序由三个.py文件构成,分别为UI界面、信号与槽函数,逻辑功能、主函数。
① 使用Qt Designer 将自己头脑中构思的电子贺卡UI界面通过一系列的控件设计出来,并不断调整UI界面使其更美观。在源程序文件夹中通过输入一下命令pyuic5 -o ui_MainWindow.py MainWindow.ui 把designer 设计出来的MainWindow.ui转化成可以运行的ui_MainWindow.py文件。
② 新建myMainWindow.py文件,在VSCODE中实现各个控件的逻辑,通过设置信号与槽函数,实现点击触发事件。
③ 新建appMain.py 文件,实现主函数,显示主窗体
ui_MainWindow.py 实现电子贺卡的UI界面
myMainWindow.py
- 使用 QMediaPlayer 和 QMediaPlaylist 播放 mp3 等音频文件。
- 使用 setPixmap 函数实现 listview中的列表映射到lab上
- 使用python json、txt文件读写 实现保存读取功能。
通过测试按钮控件,测试音乐的添加,移除,清空,测试图片的选择和删除,程序所有数据的保存读写来检测此程序是否正常运行。
(1) 用户可在软件中选择背景:要求能列出可选的背景图片
(2) 用户可在软件中输入标题
(3) 用户可在软件中输入贺卡中的文字
(4) 用户可在软件中选择贺卡的伴奏音乐
(5) 用户可保存贺卡(即保存后关闭程度后,可以重新打开、播放)
标题框:QLineEdit
正文框:QTextEdit
音乐列表:QListWidget
背景图片列表:QListView
按钮控件:QPushButton
使用了python的线性结构list列表,存储图片列表以及音乐播放列表。添加删除等功能都是在列表中跌代取出。
没有实现如:”在这里的每一个步骤,都可以回到上一步,并且再设置向前后步骤走时,原来的设置不会被清除“的功能。
控件不够美观,窗口最大化布局会出现乱序导致不美观,所以禁用了窗口最大化功能
可以加上数据库的技术,使数据持久化。可以修改控件的属性,使控件更加美观。
老师提出的改动要求是只能导入一张图片,做法是将getOpenFileNames 改为getOpenFileName
self.imgName,imgType = QtWidgets.QFileDialog.getOpenFileNames(self, "多文件选择", "/", "所有文件 (*);;文本文件 (*.txt)")
self.imgName2,imgType = QtWidgets.QFileDialog.getOpenFileName(self, "多文件选择", "/", "所有文件 (*);;文本文件 (*.txt)")在listview的模式中更换为imgName2即可实现










