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.
libmangers/gui/AddBookInformation.py

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())