modify: h5 插件系统更新
This commit is contained in:
@@ -14,7 +14,7 @@ class BaseStudentDilalog(MessageBoxBase):
|
||||
self.titleLabel = SubtitleLabel(self.title, self)
|
||||
self.viewLayout.addWidget(self.titleLabel)
|
||||
self.viewLayout.setAlignment(self.titleLabel, Qt.AlignmentFlag.AlignCenter)
|
||||
|
||||
|
||||
grid_layout = QGridLayout()
|
||||
self.viewLayout.addLayout(grid_layout)
|
||||
|
||||
@@ -48,8 +48,8 @@ class BaseStudentDilalog(MessageBoxBase):
|
||||
grid_layout.setColumnStretch(1, 1)
|
||||
grid_layout.setAlignment(Qt.AlignmentFlag.AlignLeft)
|
||||
|
||||
self.yesButton.setText('确定')
|
||||
self.cancelButton.setText('取消')
|
||||
self.yesButton.setText("确定")
|
||||
self.cancelButton.setText("取消")
|
||||
|
||||
for widget in [field[1] for field in fields]:
|
||||
widget.setMinimumWidth(200)
|
||||
@@ -64,4 +64,4 @@ class AddStudentDilalog(BaseStudentDilalog):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__("添加学生", parent)
|
||||
self.student_id = None
|
||||
self.yesButton.setText('添加')
|
||||
self.yesButton.setText("添加")
|
||||
|
||||
@@ -1,12 +1,27 @@
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
from PySide6.QtGui import QIcon
|
||||
from PySide6.QtCore import Slot
|
||||
from PySide6.QtWidgets import QWidget, QVBoxLayout, QHBoxLayout, QHeaderView, QCheckBox, QTableWidgetItem
|
||||
from PySide6.QtWidgets import (
|
||||
QWidget,
|
||||
QVBoxLayout,
|
||||
QHBoxLayout,
|
||||
QHeaderView,
|
||||
QCheckBox,
|
||||
QTableWidgetItem,
|
||||
)
|
||||
|
||||
from queue_sqlite.model import MessageItem
|
||||
|
||||
from qfluentwidgets import CardWidget, PushButton, SearchLineEdit, TableWidget, setCustomStyleSheet
|
||||
from qfluentwidgets import (
|
||||
CardWidget,
|
||||
PushButton,
|
||||
SearchLineEdit,
|
||||
TableWidget,
|
||||
setCustomStyleSheet,
|
||||
)
|
||||
|
||||
from .student_dilalog import AddStudentDilalog
|
||||
from ...style.button_style import ADD_BUTTON_STYLE, BATCH_DELETE_BUTTON_STYLE
|
||||
@@ -15,13 +30,20 @@ from ...signal import listen_signals
|
||||
from ...scheduler_manager import scheduler
|
||||
|
||||
|
||||
def resource_path(relative_path):
|
||||
"""获取资源的绝对路径"""
|
||||
if hasattr(sys, "_MEIPASS"):
|
||||
return os.path.join(sys._MEIPASS, relative_path) # type: ignore
|
||||
return os.path.join(os.path.abspath("."), relative_path)
|
||||
|
||||
|
||||
class StudentInterface(QWidget):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setObjectName("student_interface")
|
||||
self.students = []
|
||||
self.setup_ui()
|
||||
|
||||
|
||||
self.create_signal_slot()
|
||||
self.load_data()
|
||||
self.populate_table(self.students)
|
||||
@@ -34,19 +56,21 @@ class StudentInterface(QWidget):
|
||||
# 设置 title
|
||||
self.setWindowTitle("学生管理")
|
||||
layout = QVBoxLayout(self)
|
||||
layout.setContentsMargins(20, 50, 20, 20) # (左, 上, 右, 下)
|
||||
layout.setContentsMargins(20, 50, 20, 20) # (左, 上, 右, 下)
|
||||
card_widget = CardWidget(self)
|
||||
buttons_layout = QHBoxLayout(card_widget)
|
||||
|
||||
self.addButton = PushButton("新增", self)
|
||||
setCustomStyleSheet(self.addButton, ADD_BUTTON_STYLE, ADD_BUTTON_STYLE)
|
||||
self.addButton.clicked.connect(self.add_student)
|
||||
|
||||
|
||||
self.searchInput = SearchLineEdit(self)
|
||||
self.searchInput.setPlaceholderText("搜索学生姓名或学号...")
|
||||
self.searchInput.setFixedWidth(500)
|
||||
self.batchDeleteButton = PushButton("批量删除", self)
|
||||
setCustomStyleSheet(self.batchDeleteButton, BATCH_DELETE_BUTTON_STYLE, BATCH_DELETE_BUTTON_STYLE)
|
||||
setCustomStyleSheet(
|
||||
self.batchDeleteButton, BATCH_DELETE_BUTTON_STYLE, BATCH_DELETE_BUTTON_STYLE
|
||||
)
|
||||
|
||||
buttons_layout.addWidget(self.addButton)
|
||||
buttons_layout.addWidget(self.searchInput)
|
||||
@@ -56,25 +80,89 @@ class StudentInterface(QWidget):
|
||||
layout.addWidget(card_widget)
|
||||
|
||||
self.table_widget = TableWidget(self)
|
||||
self.table_widget.setBorderRadius(8) # 设置边框圆角
|
||||
self.table_widget.setBorderVisible(True) # 设置表格边框可见
|
||||
table_labels = ["", "学生ID", "姓名", "学号", "性别", "班级", "语文", "数学", "英语", "总分", "操作"]
|
||||
self.table_widget.setBorderRadius(8) # 设置边框圆角
|
||||
self.table_widget.setBorderVisible(True) # 设置表格边框可见
|
||||
table_labels = [
|
||||
"",
|
||||
"学生ID",
|
||||
"姓名",
|
||||
"学号",
|
||||
"性别",
|
||||
"班级",
|
||||
"语文",
|
||||
"数学",
|
||||
"英语",
|
||||
"总分",
|
||||
"操作",
|
||||
]
|
||||
self.table_widget.setColumnCount(len(table_labels))
|
||||
self.table_widget.setHorizontalHeaderLabels(table_labels)
|
||||
self.table_widget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
|
||||
self.table_widget.horizontalHeader().setSectionResizeMode(
|
||||
QHeaderView.ResizeMode.Stretch
|
||||
)
|
||||
|
||||
layout.addWidget(self.table_widget)
|
||||
|
||||
self.setStyleSheet("StudentInterface {background: white}")
|
||||
self.setWindowIcon(QIcon('./resources/images/logo.png'))
|
||||
self.setWindowIcon(QIcon(resource_path("./resources/images/logo.png")))
|
||||
|
||||
def load_data(self):
|
||||
self.students = [
|
||||
{"student_id": 1, "student_name": "张三", "student_number": "2024010101", "gender": 1, "class_name": "1班", "chinese_score": 80, "math_score": 85, "english_score": 90, "total_score": 265},
|
||||
{"student_id": 1, "student_name": "张三", "student_number": "2024010101", "gender": 1, "class_name": "1班", "chinese_score": 80, "math_score": 85, "english_score": 90, "total_score": 265},
|
||||
{"student_id": 1, "student_name": "张三", "student_number": "2024010101", "gender": 1, "class_name": "1班", "chinese_score": 80, "math_score": 85, "english_score": 90, "total_score": 265},
|
||||
{"student_id": 1, "student_name": "张三", "student_number": "2024010101", "gender": 1, "class_name": "1班", "chinese_score": 80, "math_score": 85, "english_score": 90, "total_score": 265},
|
||||
{"student_id": 1, "student_name": "张三", "student_number": "2024010101", "gender": 1, "class_name": "1班", "chinese_score": 80, "math_score": 85, "english_score": 90, "total_score": 265},
|
||||
{
|
||||
"student_id": 1,
|
||||
"student_name": "张三",
|
||||
"student_number": "2024010101",
|
||||
"gender": 1,
|
||||
"class_name": "1班",
|
||||
"chinese_score": 80,
|
||||
"math_score": 85,
|
||||
"english_score": 90,
|
||||
"total_score": 265,
|
||||
},
|
||||
{
|
||||
"student_id": 1,
|
||||
"student_name": "张三",
|
||||
"student_number": "2024010101",
|
||||
"gender": 1,
|
||||
"class_name": "1班",
|
||||
"chinese_score": 80,
|
||||
"math_score": 85,
|
||||
"english_score": 90,
|
||||
"total_score": 265,
|
||||
},
|
||||
{
|
||||
"student_id": 1,
|
||||
"student_name": "张三",
|
||||
"student_number": "2024010101",
|
||||
"gender": 1,
|
||||
"class_name": "1班",
|
||||
"chinese_score": 80,
|
||||
"math_score": 85,
|
||||
"english_score": 90,
|
||||
"total_score": 265,
|
||||
},
|
||||
{
|
||||
"student_id": 1,
|
||||
"student_name": "张三",
|
||||
"student_number": "2024010101",
|
||||
"gender": 1,
|
||||
"class_name": "1班",
|
||||
"chinese_score": 80,
|
||||
"math_score": 85,
|
||||
"english_score": 90,
|
||||
"total_score": 265,
|
||||
},
|
||||
{
|
||||
"student_id": 1,
|
||||
"student_name": "张三",
|
||||
"student_number": "2024010101",
|
||||
"gender": 1,
|
||||
"class_name": "1班",
|
||||
"chinese_score": 80,
|
||||
"math_score": 85,
|
||||
"english_score": 90,
|
||||
"total_score": 265,
|
||||
},
|
||||
]
|
||||
scheduler.update_listen_data("students", json.dumps(self.students))
|
||||
|
||||
@@ -94,7 +182,7 @@ class StudentInterface(QWidget):
|
||||
if key == "gender":
|
||||
value = "男" if value == 1 else "女" if value == 2 else "未知"
|
||||
item = QTableWidgetItem(str(value))
|
||||
self.table_widget.setItem(row, col+1, item)
|
||||
self.table_widget.setItem(row, col + 1, item)
|
||||
|
||||
@Slot(dict)
|
||||
def show_add_student_dialog(self, message_dict: dict):
|
||||
@@ -113,4 +201,7 @@ class StudentInterface(QWidget):
|
||||
|
||||
def add_student(self):
|
||||
self.addButton.setEnabled(False)
|
||||
scheduler.send_message(MessageItem(content={}, destination="add_student"), self.add_student_callback)
|
||||
scheduler.send_message(
|
||||
MessageItem(content={}, destination="add_student"),
|
||||
self.add_student_callback,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user