筛选题目面板完成UI

This commit is contained in:
weiye.wang 2024-02-23 21:53:38 +08:00
parent 9e03066b38
commit e5c17d6b10
3 changed files with 469 additions and 29 deletions

View File

@ -0,0 +1,124 @@
# -*- 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, QCheckBox, QFrame, QLCDNumber,
QLabel, QLineEdit, QPushButton, QSizePolicy,
QWidget)
class Ui_Form(object):
def setupUi(self, Form):
if not Form.objectName():
Form.setObjectName(u"Form")
Form.resize(400, 533)
Form.setWindowOpacity(1.000000000000000)
self.pushButton_content = QPushButton(Form)
self.pushButton_content.setObjectName(u"pushButton_content")
self.pushButton_content.setGeometry(QRect(20, 20, 75, 24))
self.pushButton_obj = QPushButton(Form)
self.pushButton_obj.setObjectName(u"pushButton_obj")
self.pushButton_obj.setGeometry(QRect(20, 50, 75, 24))
self.pushButton_tag = QPushButton(Form)
self.pushButton_tag.setObjectName(u"pushButton_tag")
self.pushButton_tag.setGeometry(QRect(20, 80, 75, 24))
self.pushButton_usage = QPushButton(Form)
self.pushButton_usage.setObjectName(u"pushButton_usage")
self.pushButton_usage.setGeometry(QRect(20, 110, 75, 24))
self.pushButton_origin = QPushButton(Form)
self.pushButton_origin.setObjectName(u"pushButton_origin")
self.pushButton_origin.setGeometry(QRect(20, 140, 75, 24))
self.pushButton_genre = QPushButton(Form)
self.pushButton_genre.setObjectName(u"pushButton_genre")
self.pushButton_genre.setGeometry(QRect(20, 170, 75, 24))
self.pushButton_ans = QPushButton(Form)
self.pushButton_ans.setObjectName(u"pushButton_ans")
self.pushButton_ans.setGeometry(QRect(20, 200, 75, 24))
self.pushButton_solution = QPushButton(Form)
self.pushButton_solution.setObjectName(u"pushButton_solution")
self.pushButton_solution.setGeometry(QRect(20, 230, 75, 24))
self.pushButton_same = QPushButton(Form)
self.pushButton_same.setObjectName(u"pushButton_same")
self.pushButton_same.setGeometry(QRect(20, 260, 75, 24))
self.pushButton_related = QPushButton(Form)
self.pushButton_related.setObjectName(u"pushButton_related")
self.pushButton_related.setGeometry(QRect(20, 290, 75, 24))
self.pushButton_remark = QPushButton(Form)
self.pushButton_remark.setObjectName(u"pushButton_remark")
self.pushButton_remark.setGeometry(QRect(20, 320, 75, 24))
self.pushButton_exec = QPushButton(Form)
self.pushButton_exec.setObjectName(u"pushButton_exec")
self.pushButton_exec.setGeometry(QRect(20, 460, 75, 48))
self.pushButton_undo = QPushButton(Form)
self.pushButton_undo.setObjectName(u"pushButton_undo")
self.pushButton_undo.setGeometry(QRect(20, 370, 75, 24))
self.pushButton_clearAll = QPushButton(Form)
self.pushButton_clearAll.setObjectName(u"pushButton_clearAll")
self.pushButton_clearAll.setGeometry(QRect(20, 400, 75, 24))
self.label_conditions = QLabel(Form)
self.label_conditions.setObjectName(u"label_conditions")
self.label_conditions.setGeometry(QRect(120, 100, 261, 331))
self.label_conditions.setFrameShape(QFrame.StyledPanel)
self.label_conditions.setAlignment(Qt.AlignLeading|Qt.AlignLeft|Qt.AlignTop)
self.label_conditions.setWordWrap(False)
self.label = QLabel(Form)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(120, 80, 71, 16))
self.checkBox_not = QCheckBox(Form)
self.checkBox_not.setObjectName(u"checkBox_not")
self.checkBox_not.setGeometry(QRect(280, 20, 111, 20))
self.lineEdit_SingleCondition = QLineEdit(Form)
self.lineEdit_SingleCondition.setObjectName(u"lineEdit_SingleCondition")
self.lineEdit_SingleCondition.setGeometry(QRect(120, 50, 261, 20))
self.label_2 = QLabel(Form)
self.label_2.setObjectName(u"label_2")
self.label_2.setGeometry(QRect(120, 20, 151, 16))
self.label_3 = QLabel(Form)
self.label_3.setObjectName(u"label_3")
self.label_3.setGeometry(QRect(120, 440, 91, 16))
self.lcdNumber_resCount = QLCDNumber(Form)
self.lcdNumber_resCount.setObjectName(u"lcdNumber_resCount")
self.lcdNumber_resCount.setGeometry(QRect(220, 460, 161, 51))
self.lcdNumber_resCount.setDigitCount(6)
self.lcdNumber_resCount.setProperty("value", 0.000000000000000)
self.retranslateUi(Form)
QMetaObject.connectSlotsByName(Form)
# setupUi
def retranslateUi(self, Form):
Form.setWindowTitle(QCoreApplication.translate("Form", u"\u9898\u53f7\u7b5b\u9009\u5668", None))
self.pushButton_content.setText(QCoreApplication.translate("Form", u"\u5185\u5bb9", None))
self.pushButton_obj.setText(QCoreApplication.translate("Form", u"\u76ee\u6807\u7f16\u53f7", None))
self.pushButton_tag.setText(QCoreApplication.translate("Form", u"\u6807\u7b7e", None))
self.pushButton_usage.setText(QCoreApplication.translate("Form", u"\u4f7f\u7528\u8bb0\u5f55", None))
self.pushButton_origin.setText(QCoreApplication.translate("Form", u"\u51fa\u5904", None))
self.pushButton_genre.setText(QCoreApplication.translate("Form", u"\u9898\u76ee\u7c7b\u578b", None))
self.pushButton_ans.setText(QCoreApplication.translate("Form", u"\u7b54\u6848", None))
self.pushButton_solution.setText(QCoreApplication.translate("Form", u"\u89e3\u7b54\u4e0e\u63d0\u793a", None))
self.pushButton_same.setText(QCoreApplication.translate("Form", u"\u76f8\u540c\u9898\u53f7", None))
self.pushButton_related.setText(QCoreApplication.translate("Form", u"\u76f8\u5173\u9898\u53f7", None))
self.pushButton_remark.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8", None))
self.pushButton_exec.setText(QCoreApplication.translate("Form", u"\u8fd0\u884c", None))
self.pushButton_undo.setText(QCoreApplication.translate("Form", u"\u64a4\u9500\u4e0a\u4e00\u4e2a", None))
self.pushButton_clearAll.setText(QCoreApplication.translate("Form", u"\u6e05\u9664", None))
self.label_conditions.setText("")
self.label.setText(QCoreApplication.translate("Form", u"\u5f53\u524d\u6761\u4ef6:", None))
self.checkBox_not.setText(QCoreApplication.translate("Form", u"\u9009\u4e2d\u8868\u793a\u4e0d\u5305\u542b", None))
self.label_2.setText(QCoreApplication.translate("Form", u"\u8f93\u5165\u6761\u4ef6, \u7528\",\"\u5206\u9694\u8868\u793a\"\u6216\"", None))
self.label_3.setText(QCoreApplication.translate("Form", u"\u7b5b\u9009\u7ed3\u679c\u6570\u76ee:", None))
# retranslateUi

View File

@ -1,45 +1,57 @@
from PySide6.QtWidgets import QWidget, QApplication, QLineEdit, QVBoxLayout
from Ui_计算器 import Ui_Form
from Ui_题号筛选器 import Ui_Form
from database_tools import *
class MyWindow(QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
self.result = ""
self.conditions = []
pro_dict = load_dict("../题库0.3/Problems.json")
self.lcdNumber_resCount.display(len(pro_dict))
self.bind()
def bind(self):
self.pushButton_0.clicked.connect(lambda: self.addNumber('0'))
self.pushButton_1.clicked.connect(lambda: self.addNumber('1'))
self.pushButton_2.clicked.connect(lambda: self.addNumber('2'))
self.pushButton_3.clicked.connect(lambda: self.addNumber('3'))
self.pushButton_4.clicked.connect(lambda: self.addNumber('4'))
self.pushButton_5.clicked.connect(lambda: self.addNumber('5'))
self.pushButton_6.clicked.connect(lambda: self.addNumber('6'))
self.pushButton_7.clicked.connect(lambda: self.addNumber('7'))
self.pushButton_8.clicked.connect(lambda: self.addNumber('8'))
self.pushButton_9.clicked.connect(lambda: self.addNumber('9'))
self.pushButton_add.clicked.connect(lambda: self.addNumber('+'))
self.pushButton_sub.clicked.connect(lambda: self.addNumber('-'))
self.pushButton_times.clicked.connect(lambda: self.addNumber('*'))
self.pushButton_div.clicked.connect(lambda: self.addNumber('/'))
self.pushButton_dot.clicked.connect(lambda: self.addNumber('.'))
self.pushButton_eq.clicked.connect(self.equal)
self.pushButton_content.clicked.connect(lambda: self.add_content("content"))
self.pushButton_obj.clicked.connect(lambda: self.add_content("objs"))
self.pushButton_tag.clicked.connect(lambda: self.add_content("tags"))
self.pushButton_usage.clicked.connect(lambda: self.add_content("usages"))
self.pushButton_origin.clicked.connect(lambda: self.add_content("origin"))
self.pushButton_genre.clicked.connect(lambda: self.add_content("genre"))
self.pushButton_ans.clicked.connect(lambda: self.add_content("ans"))
self.pushButton_solution.clicked.connect(lambda: self.add_content("solution"))
self.pushButton_same.clicked.connect(lambda: self.add_content("same"))
self.pushButton_related.clicked.connect(lambda: self.add_content("related"))
self.pushButton_remark.clicked.connect(lambda: self.add_content("remark"))
self.pushButton_undo.clicked.connect(self.undolast)
self.pushButton_clearAll.clicked.connect(self.clearConditions)
def add_content(self,field):
self.conditions.append((field,self.checkBox_not.isChecked(),self.lineEdit_SingleCondition.text()))
self.showConditions()
def undolast(self):
self.conditions = self.conditions[:-1].copy()
self.showConditions()
def clearConditions(self):
self.conditions = []
self.showConditions()
def showConditions(self):
text = ""
for cond in self.conditions:
field, flag_not, matchexp = cond
text += f"字段 {field}{'没有' if flag_not else ''}{''.join([t.strip() for t in matchexp.split(',')])}\n"
self.label_conditions.setText(text)
def addNumber(self, number):
self.lineEdit.clear()
self.result += number
self.lineEdit.setText(self.result)
def equal(self):
self.numberResult = eval(self.result)
self.lineEdit.setText(str(self.numberResult))
if __name__ == '__main__':
app = QApplication([])
windows = MyWindow()
windows.show()
app.exec()
app.exec()
#self.conditions.append(("content",True,"OBSOLETE"))

304
工具v2/题号筛选器.ui Normal file
View File

@ -0,0 +1,304 @@
<?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>533</height>
</rect>
</property>
<property name="windowTitle">
<string>题号筛选器</string>
</property>
<property name="windowOpacity">
<double>1.000000000000000</double>
</property>
<widget class="QPushButton" name="pushButton_content">
<property name="geometry">
<rect>
<x>20</x>
<y>20</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>内容</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_obj">
<property name="geometry">
<rect>
<x>20</x>
<y>50</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>目标编号</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_tag">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>标签</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_usage">
<property name="geometry">
<rect>
<x>20</x>
<y>110</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>使用记录</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_origin">
<property name="geometry">
<rect>
<x>20</x>
<y>140</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>出处</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_genre">
<property name="geometry">
<rect>
<x>20</x>
<y>170</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>题目类型</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_ans">
<property name="geometry">
<rect>
<x>20</x>
<y>200</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>答案</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_solution">
<property name="geometry">
<rect>
<x>20</x>
<y>230</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>解答与提示</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_same">
<property name="geometry">
<rect>
<x>20</x>
<y>260</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>相同题号</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_related">
<property name="geometry">
<rect>
<x>20</x>
<y>290</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>相关题号</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_remark">
<property name="geometry">
<rect>
<x>20</x>
<y>320</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>备注</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_exec">
<property name="geometry">
<rect>
<x>20</x>
<y>460</y>
<width>75</width>
<height>48</height>
</rect>
</property>
<property name="text">
<string>运行</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_undo">
<property name="geometry">
<rect>
<x>20</x>
<y>370</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>撤销上一个</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_clearAll">
<property name="geometry">
<rect>
<x>20</x>
<y>400</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>清除</string>
</property>
</widget>
<widget class="QLabel" name="label_conditions">
<property name="geometry">
<rect>
<x>120</x>
<y>100</y>
<width>261</width>
<height>331</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>120</x>
<y>80</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>当前条件:</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_not">
<property name="geometry">
<rect>
<x>280</x>
<y>20</y>
<width>111</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>选中表示不包含</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_SingleCondition">
<property name="geometry">
<rect>
<x>120</x>
<y>50</y>
<width>261</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>120</x>
<y>20</y>
<width>151</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>输入条件, 用&quot;,&quot;分隔表示&quot;或&quot;</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>120</x>
<y>440</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>筛选结果数目:</string>
</property>
</widget>
<widget class="QLCDNumber" name="lcdNumber_resCount">
<property name="geometry">
<rect>
<x>220</x>
<y>460</y>
<width>161</width>
<height>51</height>
</rect>
</property>
<property name="digitCount">
<number>6</number>
</property>
<property name="value" stdset="0">
<double>0.000000000000000</double>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>