背景需求:
6月16日育婴师高级考完了。运气好,抽到的是”护理患腹泻的幼儿”,“晨检与家长沟通”,“4个月婴儿喂蛋黄”,“21个月食谱”,都是我背过的题目(没有抽到感统)
于是一放假,我又去这个培训机构报了一个“养老护理员五级”,因为非从业,无法申报政府补贴,因此报名老师建议我读个“保育员高级”(幼儿园从业10年可以直接报高级,有补贴,可覆盖学费)。
综合考虑(单位不缺保育员,幼儿人数锐减),我还是自费报了养老护理初级。
老师也说如果想要补贴,她也可以联系将证书挂靠养老机构,但如果被抽查到,会影响信誉(个税上很容易查到)。目前公办教师岗都不是铁饭碗了,我自然不敢舍本求末。
随后老师介绍课程,认为初级护理非常简单,理论全部是判断题,操作只有8题,其中一套2选1。随到随学,每月有考核。
既然容易通过,我就问考完初级,可以再考中级吗?她说必须再等3年,而且最好单位开证明是”保健岗“,才能读。T_T,那就赶紧考完初级,等几年再考。
一、素材整理
报名后,老师把我拉群,并发了一堆“判断题”。
打开一看,是问卷星刷题(一套50题)
一定要答完50题,提交后,才会看到50道答案。
我感觉这个不如”刷题小程序“来的直观(可以直接知道每一题是否正确)。(强推大头先生的计算机二级考试刷题免费程序)
、
我也想做一个这样的刷题界面,便于刷题(据说养老护理员的判断题,考前刷两天就行了,因为题目少,而且大部分都是常识题,全部选对,都能对一半的那种)
于是我打开每套题目,全部选对,提交后,问卷星显示正确答案,然后用微信截图里面的滚动截屏,把7套50题答案都截图下来
长图截屏
用微信图片打开截图,长按,提取文字
全选复制
黏贴到微信里
然后把文字复制到Word里,用查找替换方式将:”回答正确“替换为”✓,回答错误替换为“×”……反正替换了很长时间,有时候就是手动删除,将一个题目和答案放在一起
再把整理的好题目放到Excel里
二、程序设计
然后就是不断问星火讯飞,怎样做一个gui界面
不断添加需求,一条条测试,终于完成了第一稿的“养老护理员五级判断题488题”的图形用户界面程序.
**PyQt5是一个用于创建图形用户界面(GUI)的Python库,基于Qt库开发**。
代码展示:
'''
项目:养老护理员五级 判断题488题,PyQt5图形用户界面GUI
工具:星火讯飞,阿夏
时间:2024年7月1日
问题:下一页可以完成,上一页没有做出来
'''
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QTextEdit
from PyQt5.QtGui import QFont
import sys
from PyQt5.QtCore import Qt
import openpyxl
def on_button_clicked():
sender = app.sender()
if sender.text() == "正确":
if sheet.cell(row=row, column=4).value == "正确":
label_result.setText("您的回答是✓,回答正确\n正确答案 ✓")
label_result.setStyleSheet("color: black;")
else:
label_result.setText("您的回答是✓,回答错误\n正确答案 ×")
label_result.setStyleSheet("color: red;")
elif sender.text() == "错误":
if sheet.cell(row=row, column=4).value == "错误":
label_result.setText("您的回答是×,回答正确\n正确答案 ×")
label_result.setStyleSheet("color: black;")
else:
label_result.setText("您的回答是×,回答错误\n正确答案 ✓")
label_result.setStyleSheet("color: red;")
def next_question():
global row
row += 1
if row > sheet.max_row:
row = 2
cell_value = sheet.cell(row=row, column=1).value
text_edit.setPlainText(cell_value)
label_result.clear()
# def next_question():
# global row
# row -= 1
# if row < 2:
# row = sheet.max_row
# cell_value = sheet.cell(row=row, column=1).value
# text_edit.setPlainText(cell_value)
# label_result.clear()
# 创建应用程序对象
app = QApplication(sys.argv)
path=r'C:\Users\jg2yXRZ\OneDrive\桌面\养老护理员APP'
# 创建主窗口
window = QMainWindow()
window.setWindowTitle("养老护理初级(五级)判断题488题")
window.setGeometry(50, 50, 600, 900) # 设置窗口大小和位置
# 创建一个标签并设置文本
label = QLabel("养老护理初级(五级)判断题488题", window)
label.setFont(QFont("宋体", 30, QFont.Bold)) # 设置字体为宋体,大小为30磅,加粗
label.setAlignment(Qt.AlignCenter) # 设置文本居中对齐
label.adjustSize() # 根据内容调整标签大小
label.move((window.width() - label.width()) // 2, 10) # 距离顶部10磅位置
# 读取Excel文件
workbook = openpyxl.load_workbook(path+r'\养老护理初级题目.xlsx')
sheet = workbook.active
row = 2
cell_value = sheet.cell(row=row, column=1).value
# 创建一个文本框并设置文本
text_edit = QTextEdit(window)
text_edit.setPlainText(cell_value)
text_edit.setFont(QFont("宋体", 30, QFont.Bold)) # 设置字体为宋体,大小为30磅,加粗
text_edit.setAlignment(Qt.AlignLeft) # 设置文本左对齐
text_edit.setFixedWidth(500) # 设置文本框宽度为800
text_edit.setFixedHeight(400) # 设置文本框高度为400
text_edit.move((window.width() - text_edit.width()) // 2, 60) # 将文本框放置在(0,50)的坐标位置
# 创建一个点选按钮并设置文本
an=['正确','错误']
zb=['500','600']
for a in range(len(an)):
check_button = QPushButton(an[a], window)
check_button.setFont(QFont("宋体", 30, QFont.Bold)) # 设置字体为宋体,大小为30磅,加粗
check_button.setCheckable(True) # 设置为可选中状态
check_button.resize(100, 50) # 设置按钮的长宽为40*70
check_button.move(50, int(zb[a])) # 将按钮放置在(300,10)的坐标位置
check_button.clicked.connect(on_button_clicked) # 连接按钮点击事件到处理函数
yy=['上一页','下一页']
zb2=['50','400']
# 创建一个点选按钮并设置文本
for y in range(len(yy)):
prev_button = QPushButton(yy[y], window)
prev_button.setFont(QFont("宋体", 30, QFont.Bold)) # 设置字体为宋体,大小为30磅,加粗
prev_button.resize(120, 50) # 设置按钮的长宽为40*70
prev_button.move(int(zb2[y]),840) # 将按钮放置在(600,10)的坐标位置
if y == 1:
prev_button.clicked.connect(next_question) # 连接下一页按钮点击事件到处理函数
# 创建一个标签用于显示结果
label_result = QLabel("", window)
label_result.setFont(QFont("宋体", 20, QFont.Bold)) # 设置字体为宋体,大小为30磅,加粗
label_result.setAlignment(Qt.AlignCenter) # 设置文本居中对齐
label_result.adjustSize() # 根据内容调整标签大小
label_result.resize(500, 100) # 设置按钮的长宽为40*70
label_result.move(50, 700) # 将标签放置在(0,300)的坐标位置
# 显示窗口
window.show()
# 运行应用程序的主循环
sys.exit(app.exec_())