You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.4 KiB
64 lines
2.4 KiB
from PySide6.QtCore import QRegularExpression
|
|
from PySide6.QtGui import QRegularExpressionValidator
|
|
from PySide6.QtWidgets import QDialog, QVBoxLayout, QLineEdit, QHBoxLayout, QLabel, QPushButton
|
|
|
|
from core.usermanager import UserManager
|
|
|
|
|
|
class AddBookInformation(QDialog):
|
|
def __init__(self, user_manager: UserManager):
|
|
super().__init__()
|
|
self.user_manager = user_manager
|
|
|
|
self.layout = QVBoxLayout()
|
|
|
|
self.setWindowTitle("添加图书信息")
|
|
|
|
self.isbn = QHBoxLayout()
|
|
self.isbn.addWidget(QLabel("ISBN"))
|
|
self.isbn_line_edit = QLineEdit()
|
|
self.isbn.addWidget(self.isbn_line_edit)
|
|
self.layout.addLayout(self.isbn)
|
|
|
|
self.author_line_edit = QLineEdit()
|
|
self.author = QHBoxLayout()
|
|
self.author.addWidget(QLabel("作者"))
|
|
self.author.addWidget(self.author_line_edit)
|
|
self.layout.addLayout(self.author)
|
|
|
|
self.summary_line_edit = QLineEdit()
|
|
self.summary = QHBoxLayout()
|
|
self.summary.addWidget(QLabel("书名"))
|
|
self.summary.addWidget(self.summary_line_edit)
|
|
self.layout.addLayout(self.summary)
|
|
|
|
self.price_line_edit = QLineEdit()
|
|
reg = QRegularExpression('^[1-9]\d*\.\d+$|^0\.\d+$|^[1-9]\d*$|^0$')
|
|
validator = QRegularExpressionValidator(self)
|
|
validator.setRegularExpression(reg)
|
|
self.price_line_edit.setValidator(validator)
|
|
self.price = QHBoxLayout()
|
|
self.price.addWidget(QLabel("价格"))
|
|
self.price.addWidget(self.price_line_edit)
|
|
self.layout.addLayout(self.price)
|
|
|
|
self.date_line_edit = QLineEdit()
|
|
self.date = QHBoxLayout()
|
|
self.date.addWidget(QLabel("成书日期"))
|
|
self.date.addWidget(self.date_line_edit)
|
|
self.layout.addLayout(self.date)
|
|
|
|
self.category_line_edit = QLineEdit()
|
|
self.category = QHBoxLayout()
|
|
self.category.addWidget(QLabel("分类"))
|
|
self.category.addWidget(self.category_line_edit)
|
|
self.layout.addLayout(self.category)
|
|
|
|
self.add_button = QPushButton("添加图书")
|
|
self.add_button.clicked.connect(self.add)
|
|
self.layout.addWidget(self.add_button)
|
|
|
|
self.setLayout(self.layout)
|
|
|
|
def add(self):
|
|
self.user_manager.add_book_info(self.isbn_line_edit.text(), self.author_line_edit.text(), self.summary_line_edit.text(), self.price_line_edit.text(), self.date_line_edit.text(), self.category_line_edit.text()) |