PyQt5设计一个简单的抽奖系统
2023-12-23 07:36:24
PyQt5抽奖系统
程序运行截图
抽奖系统代码
该系统使用PyQt5
模块以及openpyxl
模块开发,需要使用pip
安装导入PyQt5
模块和openpyxl
模块
import random, sys
from PyQt5.QtWidgets import QWidget, QFormLayout, QLineEdit, QVBoxLayout, QApplication, QPushButton, QDesktopWidget
from PyQt5.QtCore import pyqtSignal, QTimer
from openpyxl import load_workbook
NAME = [] #获奖用户名
TEL = [] #获奖用户电话
EXCEL_PATH = "./抽奖名单.xlsx"
'''抽奖窗口程序'''
class Lucky(QWidget):
def __init__(self, parent=None):
super(Lucky, self).__init__(parent=parent)
self.status = False
self.numTimer = QTimer() # 创建一个定时器
self.numTimer.timeout.connect(self.num_timer_out) # 定时器超时触发函数
self.nameLine = QLineEdit()
self.telLine = QLineEdit()
self.luckyBtn = QPushButton('开始抽奖')
self.luckyBtn.clicked.connect(self.startTimer) # 抽奖按钮连接槽函数
self.formLayout = QFormLayout()
self.formLayout.addRow('获奖名字', self.nameLine)
self.formLayout.addRow('电话号码', self.telLine)
self.vbox = QVBoxLayout()
self.vbox.addLayout(self.formLayout)
self.vbox.addWidget(self.luckyBtn)
self.setLayout(self.vbox)
self.show()
def startTimer(self): #定时器函数
self.status = ~self.status # 取反
if self.status:
self.numTimer.start(1) #开启定时器并设置超时时间为1毫秒
self.luckyBtn.setText('停止抽奖') # 停止计时器
else:
self.numTimer.stop()
self.luckyBtn.setText('开始抽奖') # 开启计时器
def num_timer_out(self): #定时器超时处理事件函数
self.num = random.randint(1,2) #抽奖核心代码,从1到2中随机生成一个数字num
self.nameLine.setText(NAME[self.num]) #抽取姓名列中的第num行
self.telLine.setText(str(TEL[self.num])) #抽取电话列中的第num行
def read_excel(path): #抽奖名单获取函数
luckyData = load_workbook(path) #读取Excel表格
luckyTable = luckyData[luckyData.sheetnames[0]] #获取第一个工作表
for luckyRow in luckyTable.iter_rows(min_row=1): #从第一行开始遍历所有行
NAME.append(luckyRow[1].value) # 获取第1列的值
TEL.append(luckyRow[2].value) # 获取第2列的值
def center(window): #窗口居中函数
screenSize = QDesktopWidget().screenGeometry() #获取显示屏幕大小
windowSize = window.geometry() #获取当前窗口大小
newLeft = int((screenSize.width() - windowSize.width()) / 2)
newTop = int((screenSize.height() - windowSize.height()) / 2)
window.move(newLeft, newTop)
if __name__ == "__main__":
read_excel(EXCEL_PATH)
app = QApplication(sys.argv)
draw = Lucky()
draw.setWindowTitle("XX抽奖系统") #抽奖系统窗口名称
draw.resize(400, 400)
center(draw)
sys.exit(app.exec_())
抽奖数据格式
创建一个Excel表格,按照以下格式填入抽奖人信息,并将该表格放到和代码同一目录下
序号 | 姓名 | 电话 |
---|---|---|
1 | 张三 | 15011111111 |
2 | 李四 | 15022222222 |
文章来源:https://blog.csdn.net/zZzZzZ__/article/details/135161837
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!