利用数据库寻找空闲题号功能完成

This commit is contained in:
weiye.wang 2024-04-14 18:01:15 +08:00
parent f214c22c51
commit aa343a9cdc
8 changed files with 2911 additions and 0 deletions

211
工具v3/Qt面板.ui Normal file
View File

@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>426</width>
<height>330</height>
</rect>
</property>
<property name="windowTitle">
<string>题库工具面板(PyQt)-20240301</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>426</width>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menu_luru">
<property name="title">
<string>录入</string>
</property>
<addaction name="action_kxth"/>
<addaction name="separator"/>
<addaction name="action_xtbd"/>
<addaction name="action_plsl"/>
<addaction name="separator"/>
<addaction name="action_tjgl"/>
</widget>
<widget class="QMenu" name="menu_weihu">
<property name="title">
<string>维护</string>
</property>
<addaction name="action_tjzd"/>
<addaction name="separator"/>
<addaction name="action_bjtm"/>
<addaction name="separator"/>
<addaction name="action_xxdr"/>
<addaction name="action_sddr"/>
<addaction name="action_tkdr"/>
<addaction name="separator"/>
<addaction name="action_dygg"/>
<addaction name="separator"/>
<addaction name="action_tqda"/>
<addaction name="separator"/>
<addaction name="action_hbsy"/>
<addaction name="separator"/>
<addaction name="action_tjjc"/>
</widget>
<widget class="QMenu" name="menu_shiyong">
<property name="title">
<string>使用</string>
</property>
<addaction name="action_sxth"/>
<addaction name="action_xzth"/>
<addaction name="separator"/>
<addaction name="action_xtby"/>
<addaction name="separator"/>
<addaction name="action_sctp"/>
<addaction name="separator"/>
<addaction name="action_hqth"/>
</widget>
<widget class="QMenu" name="menu_beikezu">
<property name="title">
<string>备课组</string>
</property>
<addaction name="action_jglr"/>
<addaction name="action_dtdy"/>
<addaction name="separator"/>
<addaction name="action_jysc"/>
</widget>
<widget class="QMenu" name="menu_latex">
<property name="title">
<string>LaTeX代码相关</string>
</property>
<addaction name="action_wbzh"/>
<addaction name="action_hist"/>
</widget>
<addaction name="menu_luru"/>
<addaction name="menu_weihu"/>
<addaction name="menu_shiyong"/>
<addaction name="menu_beikezu"/>
<addaction name="menu_latex"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<action name="action_kxth">
<property name="text">
<string>寻找空闲题号</string>
</property>
</action>
<action name="action_xtbd">
<property name="text">
<string>新题比对</string>
</property>
</action>
<action name="action_plsl">
<property name="text">
<string>批量收录新题</string>
</property>
</action>
<action name="action_tjgl">
<property name="text">
<string>添加关联题目</string>
</property>
</action>
<action name="action_tjzd">
<property name="text">
<string>批量添加字段数据</string>
</property>
</action>
<action name="action_xxdr">
<property name="text">
<string>小闲使用记录导入</string>
</property>
</action>
<action name="action_sddr">
<property name="text">
<string>手动使用记录导入</string>
</property>
</action>
<action name="action_tkdr">
<property name="text">
<string>统考使用记录导入</string>
</property>
</action>
<action name="action_hbsy">
<property name="text">
<string>合并使用记录并排序</string>
</property>
</action>
<action name="action_dygg">
<property name="text">
<string>单元挂钩</string>
</property>
</action>
<action name="action_tqda">
<property name="text">
<string>提取答案</string>
</property>
</action>
<action name="action_sxth">
<property name="text">
<string>关键字筛选题号</string>
</property>
</action>
<action name="action_xtby">
<property name="text">
<string>选题编译</string>
</property>
</action>
<action name="action_sctp">
<property name="text">
<string>题号生成图片</string>
</property>
</action>
<action name="action_tjjc">
<property name="text">
<string>添加基础知识梳理</string>
</property>
</action>
<action name="action_jglr">
<property name="text">
<string>讲义结构编号录入</string>
</property>
</action>
<action name="action_dtdy">
<property name="text">
<string>录入答题纸对应信息</string>
</property>
</action>
<action name="action_jysc">
<property name="text">
<string>系列讲义生成</string>
</property>
</action>
<action name="action_hqth">
<property name="text">
<string>获取题号</string>
</property>
</action>
<action name="action_wbzh">
<property name="text">
<string>文本转换处理</string>
</property>
</action>
<action name="action_bjtm">
<property name="text">
<string>编辑题目</string>
</property>
</action>
<action name="action_hist">
<property name="text">
<string>生成直方图代码</string>
</property>
</action>
<action name="action_xzth">
<property name="text">
<string>根据正确率选择题号</string>
</property>
</action>
</widget>
<resources/>
<connections/>
</ui>

171
工具v3/Ui_Qt面板.py Normal file
View File

@ -0,0 +1,171 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'Qt面板.ui'
##
## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
QCursor, QFont, QFontDatabase, QGradient,
QIcon, QImage, QKeySequence, QLinearGradient,
QPainter, QPalette, QPixmap, QRadialGradient,
QTransform)
from PySide6.QtWidgets import (QApplication, QMainWindow, QMenu, QMenuBar,
QSizePolicy, QStatusBar, QWidget)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(426, 330)
self.action_kxth = QAction(MainWindow)
self.action_kxth.setObjectName(u"action_kxth")
self.action_xtbd = QAction(MainWindow)
self.action_xtbd.setObjectName(u"action_xtbd")
self.action_plsl = QAction(MainWindow)
self.action_plsl.setObjectName(u"action_plsl")
self.action_tjgl = QAction(MainWindow)
self.action_tjgl.setObjectName(u"action_tjgl")
self.action_tjzd = QAction(MainWindow)
self.action_tjzd.setObjectName(u"action_tjzd")
self.action_xxdr = QAction(MainWindow)
self.action_xxdr.setObjectName(u"action_xxdr")
self.action_sddr = QAction(MainWindow)
self.action_sddr.setObjectName(u"action_sddr")
self.action_tkdr = QAction(MainWindow)
self.action_tkdr.setObjectName(u"action_tkdr")
self.action_hbsy = QAction(MainWindow)
self.action_hbsy.setObjectName(u"action_hbsy")
self.action_dygg = QAction(MainWindow)
self.action_dygg.setObjectName(u"action_dygg")
self.action_tqda = QAction(MainWindow)
self.action_tqda.setObjectName(u"action_tqda")
self.action_sxth = QAction(MainWindow)
self.action_sxth.setObjectName(u"action_sxth")
self.action_xtby = QAction(MainWindow)
self.action_xtby.setObjectName(u"action_xtby")
self.action_sctp = QAction(MainWindow)
self.action_sctp.setObjectName(u"action_sctp")
self.action_tjjc = QAction(MainWindow)
self.action_tjjc.setObjectName(u"action_tjjc")
self.action_jglr = QAction(MainWindow)
self.action_jglr.setObjectName(u"action_jglr")
self.action_dtdy = QAction(MainWindow)
self.action_dtdy.setObjectName(u"action_dtdy")
self.action_jysc = QAction(MainWindow)
self.action_jysc.setObjectName(u"action_jysc")
self.action_hqth = QAction(MainWindow)
self.action_hqth.setObjectName(u"action_hqth")
self.action_wbzh = QAction(MainWindow)
self.action_wbzh.setObjectName(u"action_wbzh")
self.action_bjtm = QAction(MainWindow)
self.action_bjtm.setObjectName(u"action_bjtm")
self.action_hist = QAction(MainWindow)
self.action_hist.setObjectName(u"action_hist")
self.action_xzth = QAction(MainWindow)
self.action_xzth.setObjectName(u"action_xzth")
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 426, 22))
self.menu_luru = QMenu(self.menubar)
self.menu_luru.setObjectName(u"menu_luru")
self.menu_weihu = QMenu(self.menubar)
self.menu_weihu.setObjectName(u"menu_weihu")
self.menu_shiyong = QMenu(self.menubar)
self.menu_shiyong.setObjectName(u"menu_shiyong")
self.menu_beikezu = QMenu(self.menubar)
self.menu_beikezu.setObjectName(u"menu_beikezu")
self.menu_latex = QMenu(self.menubar)
self.menu_latex.setObjectName(u"menu_latex")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menu_luru.menuAction())
self.menubar.addAction(self.menu_weihu.menuAction())
self.menubar.addAction(self.menu_shiyong.menuAction())
self.menubar.addAction(self.menu_beikezu.menuAction())
self.menubar.addAction(self.menu_latex.menuAction())
self.menu_luru.addAction(self.action_kxth)
self.menu_luru.addSeparator()
self.menu_luru.addAction(self.action_xtbd)
self.menu_luru.addAction(self.action_plsl)
self.menu_luru.addSeparator()
self.menu_luru.addAction(self.action_tjgl)
self.menu_weihu.addAction(self.action_tjzd)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_bjtm)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_xxdr)
self.menu_weihu.addAction(self.action_sddr)
self.menu_weihu.addAction(self.action_tkdr)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_dygg)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_tqda)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_hbsy)
self.menu_weihu.addSeparator()
self.menu_weihu.addAction(self.action_tjjc)
self.menu_shiyong.addAction(self.action_sxth)
self.menu_shiyong.addAction(self.action_xzth)
self.menu_shiyong.addSeparator()
self.menu_shiyong.addAction(self.action_xtby)
self.menu_shiyong.addSeparator()
self.menu_shiyong.addAction(self.action_sctp)
self.menu_shiyong.addSeparator()
self.menu_shiyong.addAction(self.action_hqth)
self.menu_beikezu.addAction(self.action_jglr)
self.menu_beikezu.addAction(self.action_dtdy)
self.menu_beikezu.addSeparator()
self.menu_beikezu.addAction(self.action_jysc)
self.menu_latex.addAction(self.action_wbzh)
self.menu_latex.addAction(self.action_hist)
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"\u9898\u5e93\u5de5\u5177\u9762\u677f(PyQt)-20240301", None))
self.action_kxth.setText(QCoreApplication.translate("MainWindow", u"\u5bfb\u627e\u7a7a\u95f2\u9898\u53f7", None))
self.action_xtbd.setText(QCoreApplication.translate("MainWindow", u"\u65b0\u9898\u6bd4\u5bf9", None))
self.action_plsl.setText(QCoreApplication.translate("MainWindow", u"\u6279\u91cf\u6536\u5f55\u65b0\u9898", None))
self.action_tjgl.setText(QCoreApplication.translate("MainWindow", u"\u6dfb\u52a0\u5173\u8054\u9898\u76ee", None))
self.action_tjzd.setText(QCoreApplication.translate("MainWindow", u"\u6279\u91cf\u6dfb\u52a0\u5b57\u6bb5\u6570\u636e", None))
self.action_xxdr.setText(QCoreApplication.translate("MainWindow", u"\u5c0f\u95f2\u4f7f\u7528\u8bb0\u5f55\u5bfc\u5165", None))
self.action_sddr.setText(QCoreApplication.translate("MainWindow", u"\u624b\u52a8\u4f7f\u7528\u8bb0\u5f55\u5bfc\u5165", None))
self.action_tkdr.setText(QCoreApplication.translate("MainWindow", u"\u7edf\u8003\u4f7f\u7528\u8bb0\u5f55\u5bfc\u5165", None))
self.action_hbsy.setText(QCoreApplication.translate("MainWindow", u"\u5408\u5e76\u4f7f\u7528\u8bb0\u5f55\u5e76\u6392\u5e8f", None))
self.action_dygg.setText(QCoreApplication.translate("MainWindow", u"\u5355\u5143\u6302\u94a9", None))
self.action_tqda.setText(QCoreApplication.translate("MainWindow", u"\u63d0\u53d6\u7b54\u6848", None))
self.action_sxth.setText(QCoreApplication.translate("MainWindow", u"\u5173\u952e\u5b57\u7b5b\u9009\u9898\u53f7", None))
self.action_xtby.setText(QCoreApplication.translate("MainWindow", u"\u9009\u9898\u7f16\u8bd1", None))
self.action_sctp.setText(QCoreApplication.translate("MainWindow", u"\u9898\u53f7\u751f\u6210\u56fe\u7247", None))
self.action_tjjc.setText(QCoreApplication.translate("MainWindow", u"\u6dfb\u52a0\u57fa\u7840\u77e5\u8bc6\u68b3\u7406", None))
self.action_jglr.setText(QCoreApplication.translate("MainWindow", u"\u8bb2\u4e49\u7ed3\u6784\u7f16\u53f7\u5f55\u5165", None))
self.action_dtdy.setText(QCoreApplication.translate("MainWindow", u"\u5f55\u5165\u7b54\u9898\u7eb8\u5bf9\u5e94\u4fe1\u606f", None))
self.action_jysc.setText(QCoreApplication.translate("MainWindow", u"\u7cfb\u5217\u8bb2\u4e49\u751f\u6210", None))
self.action_hqth.setText(QCoreApplication.translate("MainWindow", u"\u83b7\u53d6\u9898\u53f7", None))
self.action_wbzh.setText(QCoreApplication.translate("MainWindow", u"\u6587\u672c\u8f6c\u6362\u5904\u7406", None))
self.action_bjtm.setText(QCoreApplication.translate("MainWindow", u"\u7f16\u8f91\u9898\u76ee", None))
self.action_hist.setText(QCoreApplication.translate("MainWindow", u"\u751f\u6210\u76f4\u65b9\u56fe\u4ee3\u7801", None))
self.action_xzth.setText(QCoreApplication.translate("MainWindow", u"\u6839\u636e\u6b63\u786e\u7387\u9009\u62e9\u9898\u53f7", None))
self.menu_luru.setTitle(QCoreApplication.translate("MainWindow", u"\u5f55\u5165", None))
self.menu_weihu.setTitle(QCoreApplication.translate("MainWindow", u"\u7ef4\u62a4", None))
self.menu_shiyong.setTitle(QCoreApplication.translate("MainWindow", u"\u4f7f\u7528", None))
self.menu_beikezu.setTitle(QCoreApplication.translate("MainWindow", u"\u5907\u8bfe\u7ec4", None))
self.menu_latex.setTitle(QCoreApplication.translate("MainWindow", u"LaTeX\u4ee3\u7801\u76f8\u5173", None))
# retranslateUi

View File

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file '寻找空闲题号.ui'
##
## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QLabel, QLineEdit,
QPushButton, QSizePolicy, QWidget)
class Ui_Form(object):
def setupUi(self, Form):
if not Form.objectName():
Form.setObjectName(u"Form")
Form.resize(400, 300)
self.pushButton_SelectFilepath = QPushButton(Form)
self.pushButton_SelectFilepath.setObjectName(u"pushButton_SelectFilepath")
self.pushButton_SelectFilepath.setGeometry(QRect(20, 20, 75, 24))
self.lineEdit_FilePath = QLineEdit(Form)
self.lineEdit_FilePath.setObjectName(u"lineEdit_FilePath")
self.lineEdit_FilePath.setGeometry(QRect(20, 50, 361, 20))
self.label_Available = QLabel(Form)
self.label_Available.setObjectName(u"label_Available")
self.label_Available.setGeometry(QRect(20, 80, 361, 201))
self.label_Available.setFrameShape(QFrame.StyledPanel)
self.label_Available.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop)
self.retranslateUi(Form)
QMetaObject.connectSlotsByName(Form)
# setupUi
def retranslateUi(self, Form):
Form.setWindowTitle(QCoreApplication.translate("Form", u"\u5bfb\u627e\u7a7a\u95f2\u9898\u53f7", None))
self.pushButton_SelectFilepath.setText(QCoreApplication.translate("Form", u"\u9009\u62e9\u6587\u4ef6", None))
self.label_Available.setText(QCoreApplication.translate("Form", u"TextLabel", None))
# retranslateUi

View File

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file '寻找空闲题号.ui'
##
## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QFrame, QLabel, QSizePolicy,
QWidget)
class Ui_Form(object):
def setupUi(self, Form):
if not Form.objectName():
Form.setObjectName(u"Form")
Form.resize(400, 229)
self.label_Available = QLabel(Form)
self.label_Available.setObjectName(u"label_Available")
self.label_Available.setGeometry(QRect(20, 10, 361, 201))
self.label_Available.setFrameShape(QFrame.StyledPanel)
self.label_Available.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop)
self.retranslateUi(Form)
QMetaObject.connectSlotsByName(Form)
# setupUi
def retranslateUi(self, Form):
Form.setWindowTitle(QCoreApplication.translate("Form", u"\u5bfb\u627e\u7a7a\u95f2\u9898\u53f7", None))
self.label_Available.setText(QCoreApplication.translate("Form", u"TextLabel", None))
# retranslateUi

2308
工具v3/database_tools_2.py Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
from PySide6.QtWidgets import QWidget, QApplication, QFileDialog
from Ui_寻找空闲题号 import Ui_Form
from database_tools_2 import *
class MyWindow(QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.ShowAvailable()
def ShowAvailable(self):
self.label_Available.setText(spareIDs("wwylss.synology.me","13306","root","Wwy@0018705"))
if __name__ == '__main__':
app = QApplication([])
windows = MyWindow()
windows.show()
app.exec()

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>229</height>
</rect>
</property>
<property name="windowTitle">
<string>寻找空闲题号</string>
</property>
<widget class="QLabel" name="label_Available">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>361</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="text">
<string>TextLabel</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

67
工具v3/工具面板.py Normal file
View File

@ -0,0 +1,67 @@
from PySide6.QtWidgets import QMainWindow, QApplication, QFileDialog, QWidget
from Ui_Qt面板 import *
from subprocess import call
from database_tools_2 import *
import os
def run_command(name,openfilelist):
# configjson = load_dict("文本文件/config.json")
for f in openfilelist:
# if not f in configjson:
os.system("code -w "+f)
# else:
# lineindex = getlineindex(f'"{f}"',"文本文件/config.json")
# os.system(f"code -w -g 文本文件/config.json:{lineindex}")
call(["python",name+".py"])
class MyWindow(QMainWindow,Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.bind()
def bind(self):
makedir("临时文件")
self.action_kxth.triggered.connect(lambda: run_command("寻找空闲题号",[]))#已完成
self.action_xtbd.triggered.connect(lambda: run_command("新题比对",[]))#已完成
self.action_plsl.triggered.connect(lambda: run_command("批量收录题目",[]))#已完成
self.action_tjgl.triggered.connect(lambda: run_command("添加关联题目",[]))#已完成
self.action_tjzd.triggered.connect(lambda: run_command("修改metadata",["文本文件/metadata.txt"]))#已完成
self.action_bjtm.triggered.connect(lambda: run_command("编辑题目信息",[]))#已完成
self.action_xxdr.triggered.connect(lambda: run_command("获取小闲平台使用数据new",[]))#已完成
self.action_sddr.triggered.connect(lambda: run_command("手动统计结果导入",["临时文件/手动统计结果.txt"]))#已完成
self.action_tkdr.triggered.connect(lambda: run_command("统考数据导入",[]))#已完成
self.action_dygg.triggered.connect(lambda: run_command("单元挂钩",[]))#已完成
self.action_tqda.triggered.connect(lambda: run_command("文件或文本框提取答案",[]))#已完成
self.action_hbsy.triggered.connect(lambda: run_command("合并使用记录并排序",[]))#已完成
self.action_tjjc.triggered.connect(lambda: run_command("新增基础知识梳理",[]))#已完成
self.action_sxth.triggered.connect(lambda: run_command("关键字筛选题号",[]))#已完成
self.action_xtby.triggered.connect(lambda: run_command("指定题号编译pdf",[]))#已完成
self.action_sctp.triggered.connect(lambda: run_command("单一题号转为图片",[]))#已完成
self.action_hqth.triggered.connect(lambda: run_command("获取题号",[]))#已完成
self.action_jglr.triggered.connect(lambda: run_command("讲义结构与内容录入",[]))#已完成
self.action_dtdy.triggered.connect(lambda: run_command("答题纸对应",[]))#已完成
self.action_jysc.triggered.connect(lambda: run_command("系列讲义生成",[]))#已完成
self.action_wbzh.triggered.connect(lambda: run_command("文本转换处理",[]))#已完成
self.action_hist.triggered.connect(lambda: run_command("生成直方图代码",[]))#已完成
self.action_xzth.triggered.connect(lambda: run_command("根据正确率选择题号",[]))#已完成
if __name__ == '__main__':
app = QApplication([])
windows = MyWindow()
windows.show()
app.exec()