Python 业余人员自制点名程序
语文老师一名,放假时间自学python,尝试做了一个点名程序,用pyside2加了一个UI,功能单一。供大家娱乐一下。
界面在左下角,
目前出现的问题,精力有限没时间解决。
1、用Pyinstallers打包后,在学校教室电脑上出现缺少dll文件,电脑是学校的,没法装c++2015,
2、在新电脑上会提示找不到库文件。
文件比较小,就放到度盘
链接: https://pan.baidu.com/s/1s9erPtImF576kqZLF9UIeQ?pwd=5qqu 提取码: 5qqu 复制这段内容后打开百度网盘手机App,操作更方便哦
# coding:utf-8
import sys
from random import choice
from PySide2.QtCore import Slot, Qt
from PySide2.QtGui import QFont, QGuiApplication
from PySide2.QtWidgets import QApplication, QWidget, QMessageBox
from ui_namechose import Ui_Form
import openpyxl
from playsound import playsound
from threading import Thread
"""
读取excel文件的学生名字
"""
name = [] #用来装学生信息
#读取文件
wb = openpyxl.load_workbook("名单.xlsx", data_only=True)
#读取sheet信息
sheet = wb.sheetnames
#选择需要的sheet表格
mysheet = wb['name']
#读取A列信息
ndata = mysheet['A']
#信息加入到列表name[]
for cell_columns in ndata:
name.append(cell_columns.value)
#播放提示音
def play_sound(file):# 播放声音
playsound(file)
#设置UI
class loadui(QWidget):
def __init__(self):
super(loadui, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
self.name = name.copy()
#设置label显示格式,边框,大小
self.ui.showlabel.setStyleSheet('border-radius:30px;border:5px groove')
#设置UI位置和大小
self.window().setGeometry(0, QGuiApplication.primaryScreen().geometry().height() - 150, 200, 100)
self.window().setFixedSize(200, 100)
#不许自己调整大小,禁用最大化按钮,窗口置顶
self.window().setWindowFlags(Qt.WindowMinimizeButtonHint |
Qt.WindowCloseButtonHint |
Qt.WindowStaysOnTopHint)
#抽取
def chouse(self):
if len(self.name) > 0:#看看列表里面还有没有名字
codename = choice(self.name)#随机选择
self.name.remove(codename) #删掉选出的名字
self.ui.showlabel.setText(codename)#显示选出的名字
self.ui.showlabel.setFont(QFont("楷体", 40, QFont.Black))#设置显示字体,颜色,大小
else:
self.openMessageBox()#没有名字弹出提示框
# TODO: '弹出弹窗,重新开始!'
def openMessageBox(self):
QMessageBox.information(self, '提示:', '名字全部点完,是否重新开始?')
self.name = name.copy() #名字列表重新装载名字
self.ui.showlabel.clear() #显示界面清空
#点击抽取按钮时触发
@Slot()
def on_okButton_clicked(self):
Thread(target=play_sound, args=('ding.mp3',), daemon=True).start()#设置临时线程,播放声音
self.chouse()
if __name__ == '__main__':
app = QApplication(sys.argv)
appui = loadui()
appui.show()
sys.exit(app.exec_())
ui好看点就好了 挺好,改改还能干别的{:1_918:} 本帖最后由 normandie2008 于 2022-5-30 21:14 编辑
你这样读取excel数据太麻烦了。用pandas库代码可以简洁很多。而且你excel工作簿的表名必须时name才行的。 skyadmin 发表于 2022-5-30 19:30
ui好看点就好了
代码全是在网上copy改的,对我来说能用就行 normandie2008 发表于 2022-5-30 21:03
你这样读取excel数据太麻烦了。用pandas库代码可以简洁很多。而且你excel工作簿的表名必须时name才行的。
面向CSDN编程:Dweeqw,直接找到的是openpyxl的教程,有时间研究研究,
++
语文老师也要懂代码么 吾爱啦啦 发表于 2022-6-1 14:57语文老师也要懂代码么
爱好,纯属爱好·~
页:
[1]