首页 > 编程语言 >【项目实战】基于Pthon+PyQt5的GUI点名程序(附完整源码)

【项目实战】基于Pthon+PyQt5的GUI点名程序(附完整源码)

时间:2023-03-16 19:57:50浏览次数:55  
标签:Pthon 点名 name GUI PyQt5 源码 pyqt5 https import

1、项目说明

基于python+PyQt5的GUI点名程序项目实战
项目需要安装pycharm社区版或专业版都可,以及项目所需的所有模块

项目需要安装 pyqt5、pywin32及其他一些模块
安装命令如下:

 

2、项目主要技术

  • python编程技术

  • pyqt5界面编程

 

3、项目结构

  • name.txt 点名文件

  • main.py 界面和功能实现代码

 

4、项目主要功能

  • 随机点名

  • 设置人数点名

  • 自定义点名列表

 

5、部分源码

main.py

"""
项目名称:python pyqt5的gui点名程序
作者:bhml
时间:2023/1/28
代码功能:python pyqt5点名程序实现
"""

01导入所需模块

import os
import sys
from random import randint

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from win32api import MessageBox
from win32con import MB_OK, MB_ICONWARNING

02定义参数

running = False # 是否点名
name = True # 抽中的名字
seed = False # 是否查看点过的名字
choud = False # 是否采用连抽模式

03读取点名文件的内容

try:
name_list = []
with open('name.txt', encoding='utf8') as f:
for line in f.readlines():
name_list.append(line.strip('\n')) # strip('\n')去掉字符串中的'\n'
if not name_list:
with open('name.txt', 'w') as f:
f.truncate() # 截断文件,相当于删除文件的所有内容
a = ''
for i in range(51):
a += str(i) + '\n'
f.write(a)
with open('name.txt', encoding='utf8') as f:
for line in f.readlines():
name_list.append(line.strip('\n')) # strip('\n')去掉字符串中的'\n'
except:
with open('name.txt', 'w') as f:
f.truncate() # 截断文件,相当于删除文件的所有内容
a = ''
for i in range(51):
a += str(i) + '\n'
f.write(a)
name = False
MessageBox(0, "请及时修改当前目录下name文件,默认将为0-50", "MessageBox", MB_OK | MB_ICONWARNING)
name_list = []
with open('name.txt', encoding='utf8') as f:
for line in f.readlines():
name_list.append(line.strip('\n')) # strip('\n')去掉字符串中的'\n'
代码

 
## 6、运行截图
![](/i/l/?n=23&i=blog/1586793/202303/1586793-20230316193502061-194136125.png)

 
![](/i/l/?n=23&i=blog/1586793/202303/1586793-20230316193536553-39892195.png)

 
## 7、项目总结
本项目是一个非常适合练手的项目,对我们的python编程技术结合pyqt5模块运用开发界面的提升有很大的帮助,推荐大家学习研究这个项目,搞懂其中的业务逻辑流程以及各个知识点非常关键。
 
*项目资料截图:*
![](/i/l/?n=23&i=blog/1586793/202303/1586793-20230316193550947-134581692.png)
资料获取地址:https://h5.m.taobao.com/awp/core/detail.htm?ft=t&id=692912597391
B站视频讲解地址:https://www.bilibili.com/video/BV1cY4y1d7cD/
 
注:其他问题请参看视频讲解,都有介绍,一定要认真看完哦!
代码编写、视频录制不易,感谢您的支持,祝您学习愉快!
 
### 避免走丢,记得关注哦

标签:Pthon,点名,name,GUI,PyQt5,源码,pyqt5,https,import
From: https://www.cnblogs.com/bhml/p/17223909.html

相关文章

  • 【项目实战】基于Python+Django+MySQL的个人博客系统(附完整源码)
    1、项目说明基于python+Django+Mysql的个人博客系统项目实战项目需要安装pycharm专业版以及MySQL环境(环境搭建和破解可以看我的B站里的视频有讲解)首先需要创建数据库......
  • SQLMap 源码阅读
    0x01前言因为代码功底太差,所以想尝试阅读sqlmap源码一下,并且自己用golang重构,到后面会进行ysoserial的改写;以及xray的重构,当然那个应该会很多参考cel-go项目。......
  • 视频直播app源码,Swift动态修改Icon,消除系统弹窗
    视频直播app源码,Swift动态修改Icon,消除系统弹窗实现 1导入待替换的新图片,放到项目工程新文件夹中;2配置Info.plist文件: <key>CFBundleIcons</key><dict>  <......
  • 我们为什么要阅读webpack源码
    相信很多人都有这个疑问,为什么要阅读源码,仅仅只是一个打包工具,会用不就行了,一些配置项在官网,或者谷歌查一查不就好了吗,诚然在大部分的时候是这样的,但这样在深入时也会遇到......
  • Spring-事件监听 源码解析
    当我们的系统运行在一定的关键节点的时候,它会通过广播器发布一些事件出去;而我们系统中存在着部分监听器,它对某些关键节点的事件是感兴趣的,所以它会去订阅这部分消息;当这些......
  • UGUI 使UI布局生效,SetLayoutHorizontal()、SetLayoutVertical()
    ContentSizeFitter、GridLayoutGroup、HorizontalLayoutGroup、VerticalLayoutGroup、AspectRatioFitter等UGUI布局组件在某些情况下不能立即生效,这是可以调用SetLayoutHor......
  • UGUI OnTransformParentChanged()、OnBeforeTransformParentChanged()
     1.UIBehaviour.OnTransformParentChanged()当此脚本的父物体发生变化时(变化时)调用此函数。  2.UIBehaviour.OnBeforeTransformParentChanged()当此脚本的父物......
  • UGUI UIBehaviour.OnRectTransformDimensionsChange()
     1.当此脚本所在的RectTransform维度发生变化时调用的函数(在Awake方法之前会调用一次)。  2.维度发生变化也就是RectTransform下列属性发生变化:大小:Width、Heigh......
  • Java同步容器之stack源码分析
    一、概述Stack是栈。它的特性是:先进后出(FILO,FirstInLastOut)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通......
  • vue源码分析-挂载流程和模板编译
    前面几节我们从newVue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项......