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.
100 lines
2.9 KiB
100 lines
2.9 KiB
from PySide6.QtCore import Qt
|
|
from PySide6.QtWidgets import QFrame, QTreeWidgetItem, QHBoxLayout, QTreeWidgetItemIterator, QTableWidgetItem, \
|
|
QListWidgetItem
|
|
from qfluentwidgets import TreeWidget, TableWidget, ListWidget
|
|
|
|
from .gallery_interface import GalleryInterface
|
|
from ..common.Manager import UserManager
|
|
from ..common.translator import Translator
|
|
from ..common.style_sheet import StyleSheet
|
|
|
|
|
|
class IndexInterface(GalleryInterface):
|
|
def __init__(self, parent=None):
|
|
t = Translator()
|
|
super().__init__(
|
|
title='书籍总览',
|
|
subtitle="快速阅览本站所有藏书",
|
|
parent=parent
|
|
)
|
|
|
|
frame = BookTable(self)
|
|
# TODO
|
|
self.addExampleCard(
|
|
title=self.tr('藏书列表'),
|
|
widget=frame,
|
|
sourcePath=''
|
|
)
|
|
|
|
frame_2 = BookLocationTable(self)
|
|
# TODO
|
|
self.addExampleCard(
|
|
title=self.tr('书籍所在处'),
|
|
widget=frame_2,
|
|
sourcePath=''
|
|
)
|
|
|
|
|
|
class Frame(QFrame):
|
|
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent=parent)
|
|
self.hBoxLayout = QHBoxLayout(self)
|
|
self.hBoxLayout.setContentsMargins(0, 8, 0, 0)
|
|
|
|
self.setObjectName('frame')
|
|
StyleSheet.VIEW_INTERFACE.apply(self)
|
|
|
|
def addWidget(self, widget):
|
|
self.hBoxLayout.addWidget(widget)
|
|
|
|
|
|
class BookTable(Frame):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.table = TableWidget(self)
|
|
self.addWidget(self.table)
|
|
|
|
self.table.verticalHeader().hide()
|
|
self.table.setColumnCount(5)
|
|
self.table.setRowCount(60)
|
|
self.table.setHorizontalHeaderLabels([
|
|
'书名', '作者', 'ISBN', '书籍类型', '在架量',
|
|
])
|
|
|
|
bookInfos = UserManager.bookInfos
|
|
|
|
for i, bookInfos in enumerate(bookInfos):
|
|
for j in range(5):
|
|
edit = QTableWidgetItem(bookInfos[j])
|
|
edit.setFlags(edit.flags() & ~Qt.ItemIsEditable)
|
|
self.table.setItem(i, j, edit)
|
|
|
|
self.setFixedSize(950, 440)
|
|
self.table.resizeColumnsToContents()
|
|
|
|
|
|
class BookLocationTable(Frame):
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.table = TableWidget(self)
|
|
self.addWidget(self.table)
|
|
|
|
self.table.verticalHeader().hide()
|
|
self.table.setColumnCount(4)
|
|
self.table.setRowCount(60)
|
|
self.table.setHorizontalHeaderLabels([
|
|
'书籍号', '书名', 'ISBN', '藏书位置',
|
|
])
|
|
|
|
bookInfos = UserManager.bookLocationInfo
|
|
|
|
for i, bookInfos in enumerate(bookInfos):
|
|
for j in range(4):
|
|
edit = QTableWidgetItem(bookInfos[j])
|
|
edit.setFlags(edit.flags() & ~Qt.ItemIsEditable)
|
|
self.table.setItem(i, j, edit)
|
|
|
|
self.setFixedSize(950, 440)
|
|
self.table.resizeColumnsToContents()
|