pyqt5写一个抽奖程序(再次美化)

今天再次优化了之前用python写的抽奖程序
pyqt版本:pyqt5
python版本:3.6.6
下面直接上代码,有建议的话,欢迎大家交流评论!

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'Lucky_draw_pro.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
'''
1.3版本
1.bug的修改 get
2.实现动态图展示 get
3.程序图标展示 get
4.支持奖池表格导入+展示 get
5.中奖记录展示--初步确定用子窗口展示 notget
6.可配置抽奖人数和抽奖批次 支持新增、修改(删除暂时未实现) get
7.支持一次抽取多人 get
8.抽取方式优化:不采取随机数方式抽取,而是将名单乱序,使用数组切片方式进行截取,每次获取抽取人数,进行抽取。get

'''
# ''' font-family:设置字体
        #
        #     text-align:设置文本文字对齐方式
        #
        #     background:设置控件背景色
        #
        #     border:设置边界,none为无边界
        #
        #     font-size:字体大小
        #
        #     border-radius:设置四边圆角
        #
        #     hover:伪状态,设置鼠标悬浮在控件上方时变化
        # '''
import configparser

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QMainWindow, QApplication,QLabel,QLineEdit,QMessageBox,QComboBox,QGridLayout,QTextBrowser)
from PyQt5.QtCore import Qt, QSize, QWaitCondition
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QMutex
from PyQt5.QtGui import QMovie, QTextCursor, QIcon
import sys
import random
import numpy as np
import time
import xlrd
import re
import os

qmut_1 = QMutex() #创建线程锁
qmut_2 = QMutex()
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

'''主界面'''
class Ui_Draw(object):
    #静态变量,使用静态变量直接被类获取,通过线程类调用修改截取大小
    contraler_count = 0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.setWindowState(Qt.WindowMaximized)
        Dialog.setWindowTitle('Lucky')
        Dialog.setWindowIcon(QIcon('3738.png_300.png'))
        self.from_Dialog = Dialog
        self.gridLayout = QtWidgets.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 5, 0, 1, 1)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 4, 0, 1, 1)
        self.pushButton_3 = QtWidgets.QPushButton(Dialog)
        self.pushButton_3.setObjectName("pushButton_3")
        self.gridLayout.addWidget(self.pushButton_3, 6, 0, 1, 1)
        self.pushButton_4 = QtWidgets.QPushButton(Dialog)
        self.pushButton_4.setObjectName("pushButton_4")
        self.gridLayout.addWidget(self.pushButton_4, 7, 0, 1, 1)
        self.gridLayout_3 = QtWidgets.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.textEdit_2 = QtWidgets.QTextEdit(Dialog)
        self.textEdit_2.setEnabled(True)
        self.textEdit_2.setObjectName("textEdit_2")
        self.gridLayout_3.addWidget(self.textEdit_2, 2, 0, 1, 1)
        self.textEdit = QtWidgets.QTextEdit(Dialog)
        self.textEdit.setEnabled(False)
        self.textEdit.setObjectName("textEdit")
        self.gridLayout_3.addWidget(self.textEdit, 0, 0, 1, 1)
        self.comboBox = QtWidgets.QComboBox(Dialog)
        self.comboBox.setObjectName("comboBox")
        self.gridLayout.addWidget(self.comboBox, 2, 0, 1, 1)
        self.spinBox = QtWidgets.QSpinBox(Dialog)
        self.spinBox.setObjectName("spinBox")
        self.gridLayout.addWidget(self.spinBox,3, 0, 1, 1)
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setEnabled(False)
        self.label.setObjectName("label")
        #设置字体居中
        self.label.setAlignment(Qt.AlignCenter)
        self.gridLayout_3.addWidget(self.label, 1, 0, 1, 1)
        self.label.setStyleSheet('''QLabel{color:black;font-size:50px;font-family:webdings;}'''
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你一个简单的抽奖程序。下面是代码示例: ```python import sys import random from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout, QPushButton class Lottery(QWidget): def __init__(self): super().__init__() self.participants = ['Alice', 'Bob', 'Charlie', 'David', 'Eva'] # 参与者列表 self.result_label = QLabel('') # 显示抽奖结果的标签 start_btn = QPushButton('开始抽奖') start_btn.clicked.connect(self.start_lottery) reset_btn = QPushButton('重置') reset_btn.clicked.connect(self.reset_lottery) button_layout = QHBoxLayout() button_layout.addWidget(start_btn) button_layout.addWidget(reset_btn) main_layout = QVBoxLayout() main_layout.addWidget(self.result_label) main_layout.addLayout(button_layout) self.setLayout(main_layout) self.setWindowTitle('抽奖程序') def start_lottery(self): if len(self.participants) == 0: # 如果参与者列表为空,则不进行抽奖 self.result_label.setText('参与者列表为空') return winner = random.choice(self.participants) # 随机从参与者列表中选出一个赢家 self.result_label.setText('恭喜 {} 中奖!'.format(winner)) self.participants.remove(winner) # 将赢家从参与者列表中移除 def reset_lottery(self): self.result_label.setText('') self.participants = ['Alice', 'Bob', 'Charlie', 'David', 'Eva'] if __name__ == '__main__': app = QApplication(sys.argv) lottery = Lottery() lottery.show() sys.exit(app.exec_()) ``` 在这个程序中,我们使用了 PyQt5 这个图形界面库,并定义了一个 `Lottery` 类作为主窗口。在这个窗口中,有一个标签用于显示抽奖结果,和两个按钮:开始抽奖和重置。在 `start_lottery` 方法中,我们使用 `random.choice` 函数从参与者列表中随机选择一个赢家,并将结果显示在标签中。在 `reset_lottery` 方法中,我们将参与者列表重置为初始状态。 运行这个程序,你可以看到一个简单的抽奖程序窗口,可以点击开始抽奖按钮进行抽奖,也可以点击重置按钮重新设置参与者列表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值