import os from PySide2.QtWidgets import * from PySide2.QtCore import * from PySide2.QtGui import * from ui.ui_Analyze import Ui_AnalyzeWindow from ui.ui_AddFile import Ui_AddFileWindow import GuiType class AddFileWindow(Ui_AddFileWindow, QDialog): def __init__(self, parent) -> None: super().__init__() self.file_suffix = [".f *.lst *.list *.v *.sv", "All Files"] self.setupUi(self) self.init_tableWidget() self.move(parent.x()+(parent.width()-self.width())/2,parent.y()+(parent.height()-self.height())/2) self.show() def init_tableWidget(self): # 表格随窗口适应大小 self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.tableWidget.setHorizontalHeaderItem(0, QTableWidgetItem("/etc")) comBox1 = QComboBox() comBox1.addItems(self.file_suffix) self.tableWidget.setCellWidget(0,0,comBox1) files = os.listdir(os.getcwd()) for i in range(0, 3): self.tableWidget.insertRow(i) self.tableWidget.setItem(i,0, QTableWidgetItem(files[i])) class AnalyzeWindow(Ui_AnalyzeWindow, QDialog): def __init__(self, mainWindow) -> None: super().__init__() self.file_types = ["Filelist", "Netlist", "Verilog 2001", "Verilog 2005", "SystemVerilog 2005", "SystemVerilog 2009", "SystemVerilog 2012"] self.add_file_win = None self.setupUi(self) self.init_tableWidget() self.bnt_AddFile.clicked.connect(self.add_file_dialog) self.bnt_AddPath.clicked.connect(self.add_file_windows) self.bnt_Remove.clicked.connect(self.add_file_windows) self.bnt_RemoveAll.clicked.connect(self.add_file_windows) self.move(mainWindow.x()+(mainWindow.width()-self.width())/2,mainWindow.y()+(mainWindow.height()-self.height())/2) self.show() def init_tableWidget(self): self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.tableWidget.itemClicked.connect(self.itemClicked) self.tableWidget.itemSelectionChanged.connect(self.itemSelectionChanged) self.tableWidget.clicked.connect(self.clicked) comBox = QComboBox() comBox.addItems(self.file_types) self.tableWidget.setCellWidget(0,0,comBox) self.tableWidget.setItem(0,1, QTableWidgetItem("/etc")) comBox1 = QComboBox() comBox1.addItems(self.file_types) self.tableWidget.setCellWidget(1,0,comBox1) self.tableWidget.setItem(1,1, QTableWidgetItem("/home/opt")) self.tableWidget.setItem(2,0, QTableWidgetItem("Search Path")) self.tableWidget.setItem(2,1, QTableWidgetItem("/")) def add_file_windows(self): dialog = AddFileWindow(self) dialog.exec_() def add_file_dialog(self): f = QFileDialog() res= f.getOpenFileName(filter="Verilog or Netlist Files((*.v);;SystemVerilog Files(*.sv);;Filelists(*.f *.lst *.list);;All files(*.*)") print(res) def mousePressEvent(self, event:QPoint): print('event') p = event.pos() index = QModelIndex(p) if not index.isValid(): print('not valide') # setCurrentIndex(QModelIndex()) # emit sigPressEmpty() return super().mousePressEvent(event) def itemClicked(self): print("itemClicked") def clicked(self): print("clicked") def itemSelectionChanged(self): self.bnt_Remove.setEnabled(True) print("itemSelectionChanged")