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

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