|
|
@@ -102,28 +102,42 @@ class FormWindow(Ui_Form, MdiSubWindow):
|
|
|
return model
|
|
|
|
|
|
|
|
|
-class MultiFormWin(FormWindow):
|
|
|
- def __init__(self, mdiArea:QMdiArea, instan:GuiType._GuiWinFormMulti) -> None:
|
|
|
- super().__init__()
|
|
|
+class MultiFormWin(Ui_Form, MdiSubWindow):
|
|
|
+ def __init__(self, mainWindow, instan:GuiType._GuiWinFormMulti) -> None:
|
|
|
+ super().__init__(mainWindow)
|
|
|
self.setupUi(self)
|
|
|
- self.setParent(mdiArea)
|
|
|
- self.init_multi_form_ui(mdiArea)
|
|
|
- self.reportButton.clicked.connect(self.report_table)
|
|
|
+ self.init_multi_form_ui()
|
|
|
+ self.setWindowTitle(instan.Title)
|
|
|
+ MultiFormWin.set_form_multi(self.tableView, self.sheets, instan.Forms)
|
|
|
+
|
|
|
self.instan = instan
|
|
|
-
|
|
|
- def set_form_multi(self, multi_form:GuiType._GuiFormMulti):
|
|
|
- self.sheets.clear()
|
|
|
+ self.sheets.activated.connect(lambda index: MultiFormWin.activate_table_sheet(self.tableView, self.instan.Forms, index))
|
|
|
+ self.reportButton.clicked.connect(self.report_table)
|
|
|
+
|
|
|
+ width = self.tableView.horizontalHeader().width() * self.tableView.horizontalHeader().count() + 25
|
|
|
+ mdiArea:QMdiArea = mainWindow.mdiArea
|
|
|
+ mdisub = mdiArea.addSubWindow(self)
|
|
|
+ mdisub.resize(width, self.height())
|
|
|
+ mdisub.show()
|
|
|
+
|
|
|
+ def set_form_multi(tableView:QTableView, sheets:QComboBox, multi_form:GuiType._GuiFormMulti):
|
|
|
+ sheets.clear()
|
|
|
for sheet_name in multi_form.Names:
|
|
|
- self.sheets.addItem(sheet_name)
|
|
|
- if self.sheets.count() > 0:
|
|
|
- form = multi_form.GetForm(self.sheets.currentIndex())
|
|
|
+ sheets.addItem(sheet_name)
|
|
|
+ if sheets.count() > 0:
|
|
|
+ form = multi_form.GetForm(sheets.currentIndex())
|
|
|
model = FormWindow.get_form_model(form)
|
|
|
- self.tableView.setModel(model)
|
|
|
+ tableView.setModel(model)
|
|
|
|
|
|
+ def activate_table_sheet(tableView, form_multi_instan, index):
|
|
|
+ model = FormWindow.get_form_model(form_multi_instan.GetForm(index))
|
|
|
+ tableView.setModel(model)
|
|
|
+ print("active sheet")
|
|
|
+
|
|
|
def report_table(self):
|
|
|
print("report test")
|
|
|
-
|
|
|
- def init_multi_form_ui(self,mdiArea:QMdiArea):
|
|
|
+
|
|
|
+ def init_multi_form_ui(self):
|
|
|
self.horizontalLayout_2 = QHBoxLayout()
|
|
|
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
|
|
self.sheets = QComboBox(self.centralwidget)
|
|
|
@@ -132,6 +146,10 @@ class MultiFormWin(FormWindow):
|
|
|
sizePolicy.setHorizontalStretch(0)
|
|
|
sizePolicy.setVerticalStretch(0)
|
|
|
sizePolicy.setHeightForWidth(self.sheets.sizePolicy().hasHeightForWidth())
|
|
|
+ self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
|
|
+ self.tableView.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
|
|
+ self.tableView.customContextMenuRequested.connect(self.right_click_menu)
|
|
|
+
|
|
|
self.sheets.setSizePolicy(sizePolicy)
|
|
|
|
|
|
self.horizontalLayout_2.addWidget(self.sheets)
|
|
|
@@ -144,9 +162,13 @@ class MultiFormWin(FormWindow):
|
|
|
self.horizontalLayout_2.setStretch(1, 6)
|
|
|
|
|
|
self.verticalLayout.insertLayout(0,self.horizontalLayout_2)
|
|
|
- mdiArea.addSubWindow(self)
|
|
|
- self.show()
|
|
|
|
|
|
+ def right_click_menu(self, pos):
|
|
|
+ pop_menu = QMenu()
|
|
|
+ pop_menu.addAction(QAction('Crossprobe', pop_menu))
|
|
|
+ pop_menu.triggered.connect(lambda action: print(self.tableView.currentIndex().data()))
|
|
|
+ pop_menu.exec_(QCursor.pos())
|
|
|
+
|
|
|
|
|
|
class TreeWidgetItem(QTreeWidgetItem):
|
|
|
def __init__(self, parent: int, tree_row:GuiType._GuiTreeRow):
|
|
|
@@ -212,7 +234,7 @@ class SideBarWin(Ui_SideBar, MdiSubWindow):
|
|
|
self.treeWidget.itemCollapsed.connect(self.collapse_tree)
|
|
|
self.treeWidget.currentItemChanged.connect(self.item_change)
|
|
|
self.treeWidget.customContextMenuRequested.connect(self.right_click_menu)
|
|
|
- self.sheets.activated.connect(self.activate_table_sheet)
|
|
|
+ self.sheets.activated.connect(lambda index: MultiFormWin.activate_table_sheet(self.tableView, self.form_multi_instan, index))
|
|
|
self.tableView.customContextMenuRequested.connect(self.right_click_menu)
|
|
|
|
|
|
mdiArea:QMdiArea = ui.mdiArea
|
|
|
@@ -306,7 +328,7 @@ class SideBarWin(Ui_SideBar, MdiSubWindow):
|
|
|
if not item:
|
|
|
return
|
|
|
self.form_multi_instan = self.instance.GetForms(self.get_tree_names(item))
|
|
|
- self.set_form_multi(self.form_multi_instan)
|
|
|
+ MultiFormWin.set_form_multi(self.tableView, self.sheets, self.form_multi_instan)
|
|
|
|
|
|
def collapse_tree(self, item:TreeWidgetItem):
|
|
|
# 取出并删除所有子节点
|
|
|
@@ -328,9 +350,17 @@ class SideBarWin(Ui_SideBar, MdiSubWindow):
|
|
|
for row in sub_tree_rows:
|
|
|
self.set_tree_row(item, row)
|
|
|
|
|
|
- def activate_table_sheet(self, index):
|
|
|
- model = FormWindow.get_form_model(self.form_multi_instan.GetForm(index))
|
|
|
- self.tableView.setModel(model)
|
|
|
+ # def activate_table_sheet(self, index):
|
|
|
+ # model = FormWindow.get_form_model(self.form_multi_instan.GetForm(index))
|
|
|
+ # self.tableView.setModel(model)
|
|
|
+ # def set_form_multi(self, multi_form:GuiType._GuiFormMulti):
|
|
|
+ # self.sheets.clear()
|
|
|
+ # for sheet_name in multi_form.Names:
|
|
|
+ # self.sheets.addItem(sheet_name)
|
|
|
+ # if self.sheets.count() > 0:
|
|
|
+ # form = multi_form.GetForm(self.sheets.currentIndex())
|
|
|
+ # model = FormWindow.get_form_model(form)
|
|
|
+ # self.tableView.setModel(model)
|
|
|
|
|
|
def set_tree_row(self, parent:TreeWidgetItem, tree_row:GuiType._GuiTreeRow):
|
|
|
tree_widget_item = self.add_tree_row(parent, tree_row)
|
|
|
@@ -347,16 +377,6 @@ class SideBarWin(Ui_SideBar, MdiSubWindow):
|
|
|
for tree_row in tree.TreeRows:
|
|
|
# 根节点
|
|
|
self.set_tree_row(self.treeWidget, tree_row)
|
|
|
-
|
|
|
-
|
|
|
- def set_form_multi(self, multi_form:GuiType._GuiFormMulti):
|
|
|
- self.sheets.clear()
|
|
|
- for sheet_name in multi_form.Names:
|
|
|
- self.sheets.addItem(sheet_name)
|
|
|
- if self.sheets.count() > 0:
|
|
|
- form = multi_form.GetForm(self.sheets.currentIndex())
|
|
|
- model = FormWindow.get_form_model(form)
|
|
|
- self.tableView.setModel(model)
|
|
|
|
|
|
|
|
|
class SubWindows(QObject):
|
|
|
@@ -368,7 +388,7 @@ class SubWindows(QObject):
|
|
|
self.info = {}
|
|
|
|
|
|
def add_win_form_multi(self, instance:GuiType._GuiWinFormMulti):
|
|
|
- form_multi_win = MultiFormWin(self.ui.mdiArea)
|
|
|
+ form_multi_win = MultiFormWin(self.ui, instance)
|
|
|
form_multi_win.setWindowTitle(instance.Title)
|
|
|
form_multi_win.sheets.currentIndexChanged.connect(lambda:self.change_table_sheet(form_multi_win))
|
|
|
self.set_form_multi_table(form_multi_win,instance.Forms)
|
|
|
@@ -398,7 +418,7 @@ class SubWindows(QObject):
|
|
|
|
|
|
def add_windows(self, instance):
|
|
|
if isinstance(instance, GuiType._GuiWinFormMulti):
|
|
|
- self.add_win_form_multi(instance)
|
|
|
+ MultiFormWin(self.ui, instance)
|
|
|
elif isinstance(instance, GuiType._GuiSideBar):
|
|
|
self.side_bar.init_win_data(instance)
|
|
|
|