大家好,感谢邀请,今天来为大家分享一下抖音教学网站源码分享的问题,以及和抖音教学网站源码分享教程的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
刷抖音的时候发现一个老师在用的课堂点名系统。用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。
【阅读全文】
操作效果展示:
完整源代码块还是放在了文章的最后面,有需要直接运行到文末获取下载方式就好了。
使用的时候准备好学生姓名的文件,使用导入数据的按钮直接导入就可以开始点名了。新建一个文本文档,将姓名设置设置好,姓名文件示例如下。
干货主要有:
①200多本Python电子书(和经典的书籍)应该有
②Python标准库资料(最全中文版)
③项目源码(四五十个有趣且可靠的练手项目及源码)
④Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)
⑤Python学习路线图(告别不入流的学习)
全部搞定~私信小编01即可获取完整源代码。
使用系统库或者第三方库都比较常规,这里就不一一介绍了。
fromPyQt5.QtWidgetsimport*\nfromPyQt5.QtGuiimport*\nfromPyQt5.QtCoreimport*\n\nfromqdarkstyleimportload_stylesheet_pyqt5\n\nimportos\nimportsys\nimporttime\nimportrandom\n
为了和UI界面的主线程分离开来,我们采用的还是QThread多线程的方式来实现随机点名模块的。这样做的目的是为了防止主线程阻塞,下面是子线程的实现部分。
classWorkThread(QThread):\ntrigger=pyqtSignal(str)\nfinished=pyqtSignal(bool)\n\ndef__init__(self,parent=None):\nsuper(WorkThread,self).__init__(parent)\nself.parent=parent\nself.working=True\n\ndef__del__(self):\nself.working=False\nself.wait()\n\ndefrun(self):\ndata_list=self.parent.data_list\niflen(data_list)>=1:\nran=random.randint(20,40)\nprint(&39;,ran)\nforainrange(ran):\nname=random.choice(data_list)\nself.trigger.emit(name)\nprint(name)\ntime.sleep(0.6)\nself.finished.emit(True)\nelse:\nself.trigger.emit(&39;)\n
UI界面的实现部分也比较常规,下面主要实现部分的代码块。
classClassCollSystem(QWidget):\ndef__init__(self):\nsuper(ClassCollSystem,self).__init__()\nself.data_list=[]\nself.init_ui()\n\ndefinit_ui(self):\n&39;&39;&39;\nself.thread_=WorkThread(self)\nself.thread_.trigger.connect(self.set_name)\nself.thread_.finished.connect(self.finished)\n\n&39;&39;&39;\nself.setWindowTitle(&39;)\nself.setWindowIcon(QIcon(&39;))\nself.setFixedSize(500,350)\n\n&39;&39;&39;\nvbox_name=QVBoxLayout()\nself.current_name=QLabel()\nself.current_name.setText(&39;)\nself.current_name.setStyleSheet(\n&34;MicrosoftJhengHei&39;)\n\nvbox_name.addWidget(self.current_name)\nvbox_name.setAlignment(Qt.AlignCenter)\n\n&39;&39;&39;\nvbox_start=QVBoxLayout()\nself.start_btn=QPushButton()\nself.start_btn.setText(&39;)\nself.start_btn.setFixedSize(160,50)\nself.start_btn.setStyleSheet(\n&34;MicrosoftJhengHei&39;)\nself.start_btn.clicked.connect(self.start_btn_click)\n\nvbox_start.addWidget(self.start_btn)\nvbox_start.setAlignment(Qt.AlignCenter)\nvbox_start.addSpacing(80)\n\n&39;&39;&39;\nvbox_data=QHBoxLayout()\nself.message=QLabel()\nself.message.setText(&39;)\nself.message.setStyleSheet(\n&39;)\n\nself.import_btn=QPushButton()\nself.import_btn.setText(&39;)\nself.import_btn.setFixedSize(90,25)\nself.import_btn.clicked.connect(self.import_btn_click)\n\nvbox_data.addWidget(self.message)\nvbox_data.addStretch(1)\nvbox_data.addWidget(self.import_btn)\n\n&39;&39;&39;\nvbox=QVBoxLayout()\nvbox.addLayout(vbox_name)\nvbox.addLayout(vbox_start)\nvbox.addLayout(vbox_data)\n\nself.setLayout(vbox)\n\ndefstart_btn_click(self):\nifself.start_btn.text().strip()==&39;:\nself.thread_.start()\nelse:\nself.start_btn.setText(&39;)\n\ndefset_name(self,name):\nself.current_name.setText(name)\n\ndeffinished(self,finished):\niffinishedisTrue:\nself.start_btn.setText(&39;)\n\ndefimport_btn_click(self):\nfile=QFileDialog.getOpenFileName(self,&39;,os.getcwd(),&39;)\nfile_path=file[0]\nprint(file_path)\nfl=open(str(file_path),&39;,encoding=&39;)\nself.data_list=fl.read().strip().split(&39;)\nprint(self.data_list)\nself.message.setText(&39;+str(len(self.data_list))+&39;)\n
最后,将主页面加入主体循环直接运行可以了。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
