| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- import os
- import threading
- from PySide2.QtWidgets import *
- from PySide2.QtCore import *
- from PySide2.QtGui import *
- from ui.ui_Analyze import Ui_AnalyzeWindow
- from ui.AddFile import AddFileWindow,AddPathWindow,FileCategory,FolderCategory
- import GuiType
- class AnalyzeWindow(Ui_AnalyzeWindow, QDialog):
- def __init__(self, mainWindow, shell_execute) -> None:
- super().__init__(mainWindow)
- self.add_file_win = None
- self.setupUi(self)
- self.init_tableWidget()
- self.bnt_AddFile.clicked.connect(self.add_file_windows)
- self.bnt_AddPath.clicked.connect(self.add_path_windows)
- self.bnt_Remove.clicked.connect(lambda: self.tableWidget.removeRow(self.tableWidget.currentRow()))
- self.bnt_RemoveAll.clicked.connect(self.remove_all)
- self.btn_OK.clicked.connect(self.click_ok)
- self.btn_Apply.clicked.connect(self.apply)
- self.GUI_shell_execute = shell_execute
- self.tableWidget.mousePressEvent = self.click_table_widget
-
- self.move(mainWindow.x()+(mainWindow.width()-self.width())/2,mainWindow.y()+(mainWindow.height()-self.height())/2)
- self.show()
-
- def init_tableWidget(self):
- self.tableWidget.itemSelectionChanged.connect(self.itemSelectionChanged)
-
- self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed)
- self.tableWidget.horizontalHeader().setSectionResizeMode(1,QHeaderView.Stretch)
- fontMetrics = QFontMetrics(self.tableWidget.font())
- textWidth = fontMetrics.width(FileCategory.SystemVerilog_2012.text)
- self.tableWidget.setColumnWidth(0, textWidth+30)
-
- def add_file_windows(self):
- add_file_win = AddFileWindow(self, os.getcwd())
- add_file_win.add_file_sig.connect(self.add_file)
- add_file_win.exec_()
- def add_path_windows(self):
- add_path_win = AddPathWindow(self, os.getcwd())
- add_path_win.add_file_sig.connect(self.add_path)
- add_path_win.exec_()
-
- def click_table_widget(self, event:QMouseEvent):
- p = event.pos()
- index = self.tableWidget.indexAt(p)
- if index.row() == -1:
- self.tableWidget.clearSelection()
- else:
- QTableWidget.mousePressEvent(self.tableWidget, event)
-
- def itemClicked(self):
- print("itemClicked")
-
- def clicked(self):
- print("clicked")
-
- def itemSelectionChanged(self):
- if self.tableWidget.selectedItems():
- self.bnt_Remove.setEnabled(True)
- else:
- self.bnt_Remove.setEnabled(False)
-
- def add_file(self, text, path):
- row = self.tableWidget.rowCount()
- self.tableWidget.insertRow(row)
- comBox = QComboBox()
- comBox.addItems(FileCategory.get_all_text())
- comBox.setCurrentText(text)
- self.tableWidget.setCellWidget(row,0,comBox)
- self.tableWidget.setItem(row,1, QTableWidgetItem(path))
- def add_path(self, text, path):
- row = self.tableWidget.rowCount()
- self.tableWidget.insertRow(row)
- self.tableWidget.setItem(row,0, QTableWidgetItem(text))
- self.tableWidget.setItem(row,1, QTableWidgetItem(path))
-
- def remove_all(self):
- row_count = self.tableWidget.rowCount()
- for _ in range(row_count):
- self.tableWidget.removeRow(0)
- def get_all_path(self):
- dat = []
- for i in range(self.tableWidget.rowCount()):
- file_category_widget:QComboBox = self.tableWidget.cellWidget(i, 0)
- # 下拉控件单元格
- if file_category_widget:
- file_category_text = file_category_widget.currentText()
- category_simple = FileCategory.get_category(file_category_text).simple
- # 纯文本单元格,Search Path
- else:
- # file_category = self.tableWidget.item(i, 0).text()
- category_simple = FolderCategory.Search_Path.simple
- file_path = self.tableWidget.item(i, 1).text()
- dat.append([category_simple, file_path])
- return dat
-
- def apply(self):
- args = self.get_all_path()
- try:
- thread = threading.Thread(target=self.GUI_shell_execute, args=(f"_GUI.Analyze({args})",))
- thread.start()
- except Exception as e:
- print(e)
-
- def click_ok(self):
- self.apply()
- self.close()
|