【办公类-21-18】20240701 养老护理员初级选择题488,制作PyQt5图形界面GUI

2 篇文章 0 订阅

背景需求:

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_())

视频展示:

20240701养老护理员判断题GUI界面

图片展示

选对了,就是黑色文字

选错了,就是红色文字

选对了,就是黑色文字

选错了,就是红色文字。

目前上一页按钮还没有做出来,没法打包。明天再试试

'''
项目:养老护理员五级 判断题488题,PyQt5图形用户界面GUI 上一页下一页都可以
工具:星火讯飞,阿夏
时间:2024年7月1日

'''

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QTextEdit
from PyQt5.QtGui import QFont
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 prev_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'
workbook = openpyxl.load_workbook(path+r'\养老护理初级题目.xlsx')
sheet = workbook.active
row = 2
cell_value = sheet.cell(row=row, column=1).value

# 创建一个主窗口
window = QMainWindow()
window.setWindowTitle("养老护理初级(五级)判断题488题")
window.setGeometry(50, 50, 600, 900)  # 设置窗口大小和位置

# 创建一个标签并设置文本
label = QLabel("养老护理初级(五级)判断题488题", window)
label.setFont(QFont("宋体", 25, QFont.Bold))  # 设置字体为宋体,大小为30磅,加粗
label.setAlignment(Qt.AlignCenter)  # 设置文本居中对齐
label.adjustSize()  # 根据内容调整标签大小
label.move((window.width() - label.width()) // 2, 10)  # 距离顶部10磅位置

# 创建一个文本框并设置文本
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 == 0:
        prev_button.clicked.connect(prev_question)  # 连接上一页按钮点击事件到处理函数
    else:
        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_())

打包系列

1、把xlsx和py放在一起

终端里输入:

cd

cd D:\test\02办公类\99养老护理员初级

pyinstaller --onefile --add-data "养老护理初级题目.xlsx;." 03护理员初级上一页.py

然后需要运行3分钟

最后生成一个exe

点击打开

存在问题,不能用手机打开exe程序,只能在电脑里点开

 

  • 34
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值