筛选题目面板完成UI
This commit is contained in:
parent
9e03066b38
commit
e5c17d6b10
|
|
@ -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
|
||||
|
||||
|
|
@ -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"))
|
||||
|
|
@ -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>输入条件, 用","分隔表示"或"</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>
|
||||
Reference in New Issue