Bläddra i källkod

新增 菜单栏 – Design - Elaborate窗口

mrh 3 år sedan
förälder
incheckning
faad923713
5 ändrade filer med 430 tillägg och 1 borttagningar
  1. 7 1
      main_windows.py
  2. 2 0
      sub_windows.py
  3. 22 0
      ui/Elaborate.py
  4. 250 0
      ui/Elaborate.ui
  5. 149 0
      ui/ui_Elaborate.py

+ 7 - 1
main_windows.py

@@ -12,6 +12,7 @@ from ui.ui_MainWindows import Ui_MainWindow
 from ui.Analyze import AnalyzeWindow
 from sub_windows import SubWindows,LineEditWin,FormWindow, get_sub_win_list,get_sub_win
 from ui.About import AboutWindow
+from ui.Elaborate import Elaborate
 import GuiType
 
 
@@ -98,6 +99,7 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.actionReport_Virtual_Timing.triggered.connect(self.add_sub_win)
         self.actionAbout.triggered.connect(self.about)
         self.actionAnalyze.triggered.connect(self.show_analyze_window)
+        self.actionElaborate.triggered.connect(self.elaborate_window)
         self.textEdit.document().contentsChanged.connect(self.textEdit_change_size)
         self.textEdit.document().contentsChange.connect(self.textEdit_change_contents)
         sys.stdout = Stream()
@@ -188,7 +190,11 @@ class MainWindow(Ui_MainWindow, QMainWindow):
     def show_analyze_window(self):
         d = AnalyzeWindow(self, self.GUI.Shell_Execute)
         d.exec_()
-       
+    
+    def elaborate_window(self):
+        d = Elaborate(self)
+        d.exec_()
+    
     def outputWritten(self, text):
         cursor = self.LogText.textCursor()
         cursor.movePosition(QTextCursor.End)

+ 2 - 0
sub_windows.py

@@ -272,6 +272,8 @@ class SideBarWin(Ui_SideBar, QMainWindow):
         return tree_names[::-1]
     
     def item_change(self, item:TreeWidgetItem, column):
+        if not item:
+            return
         self.form_multi_instan = self.instance.GetForms(self.get_tree_names(item))
         self.set_form_multi(self.form_multi_instan)
       

+ 22 - 0
ui/Elaborate.py

@@ -0,0 +1,22 @@
+import threading
+from PySide2.QtWidgets import *
+from PySide2.QtCore import *
+from PySide2.QtGui import *
+from ui.ui_Elaborate import Ui_Elaborate
+
+class Elaborate(Ui_Elaborate, QDialog):
+    def __init__(self, mainWindow) -> None:
+        super().__init__()
+        self.setupUi(self)
+        self.btn_OK.clicked.connect(self.click_ok)
+        self.mainWin = mainWindow
+        self.move(mainWindow.x()+(mainWindow.width()-self.width())/2,mainWindow.y()+(mainWindow.height()-self.height())/2)
+    
+    def click_ok(self):
+        top = self.top_edit.text()
+        bbox = self.checkBox.isChecked()
+        try:
+            self.mainWin.GUI.Elaborate(top,bbox)
+            self.close()
+        except Exception as e:
+            print(e)

+ 250 - 0
ui/Elaborate.ui

@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Elaborate</class>
+ <widget class="QDialog" name="Elaborate">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>419</width>
+    <height>193</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Elaborate</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <spacer name="verticalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Expanding</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>30</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <item>
+          <widget class="QRadioButton" name="radioButton">
+           <property name="text">
+            <string>Top Design</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QRadioButton" name="radioButton_2">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="text">
+            <string>Configuration</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QRadioButton" name="radioButton_4">
+           <property name="text">
+            <string>Auto Infer Top Design</string>
+           </property>
+           <property name="checked">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <layout class="QVBoxLayout" name="verticalLayout_4">
+         <item>
+          <widget class="QLineEdit" name="top_edit">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="minimumSize">
+            <size>
+             <width>200</width>
+             <height>0</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="lineEdit_2">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="minimumSize">
+            <size>
+             <width>200</width>
+             <height>0</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="verticalSpacer_3">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Fixed</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>26</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeType">
+          <enum>QSizePolicy::Expanding</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>23</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item alignment="Qt::AlignHCenter">
+      <widget class="QCheckBox" name="checkBox">
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>Allow Unresolved Black Box</string>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <spacer name="horizontalSpacer_3">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QPushButton" name="btn_OK">
+         <property name="text">
+          <string>OK</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="btn_cancel">
+         <property name="text">
+          <string>Cancel</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer_4">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>btn_cancel</sender>
+   <signal>clicked()</signal>
+   <receiver>Elaborate</receiver>
+   <slot>close()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>250</x>
+     <y>171</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>209</x>
+     <y>96</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

+ 149 - 0
ui/ui_Elaborate.py

@@ -0,0 +1,149 @@
+# -*- coding: utf-8 -*-
+
+################################################################################
+## Form generated from reading UI file 'Elaborate.ui'
+##
+## Created by: Qt User Interface Compiler version 5.15.0
+##
+## WARNING! All changes made in this file will be lost when recompiling UI file!
+################################################################################
+
+from PySide2.QtCore import (QCoreApplication, QDate, QDateTime, QMetaObject,
+    QObject, QPoint, QRect, QSize, QTime, QUrl, Qt)
+from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
+    QFontDatabase, QIcon, QKeySequence, QLinearGradient, QPalette, QPainter,
+    QPixmap, QRadialGradient)
+from PySide2.QtWidgets import *
+
+
+class Ui_Elaborate(object):
+    def setupUi(self, Elaborate):
+        if not Elaborate.objectName():
+            Elaborate.setObjectName(u"Elaborate")
+        Elaborate.resize(419, 193)
+        self.gridLayout = QGridLayout(Elaborate)
+        self.gridLayout.setObjectName(u"gridLayout")
+        self.verticalLayout = QVBoxLayout()
+        self.verticalLayout.setObjectName(u"verticalLayout")
+        self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+
+        self.verticalLayout.addItem(self.verticalSpacer_2)
+
+        self.horizontalLayout = QHBoxLayout()
+        self.horizontalLayout.setObjectName(u"horizontalLayout")
+        self.horizontalSpacer = QSpacerItem(30, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+        self.horizontalLayout.addItem(self.horizontalSpacer)
+
+        self.verticalLayout_2 = QVBoxLayout()
+        self.verticalLayout_2.setObjectName(u"verticalLayout_2")
+        self.radioButton = QRadioButton(Elaborate)
+        self.radioButton.setObjectName(u"radioButton")
+
+        self.verticalLayout_2.addWidget(self.radioButton)
+
+        self.radioButton_2 = QRadioButton(Elaborate)
+        self.radioButton_2.setObjectName(u"radioButton_2")
+        self.radioButton_2.setEnabled(False)
+
+        self.verticalLayout_2.addWidget(self.radioButton_2)
+
+        self.radioButton_4 = QRadioButton(Elaborate)
+        self.radioButton_4.setObjectName(u"radioButton_4")
+        self.radioButton_4.setChecked(True)
+
+        self.verticalLayout_2.addWidget(self.radioButton_4)
+
+
+        self.horizontalLayout.addLayout(self.verticalLayout_2)
+
+        self.verticalLayout_4 = QVBoxLayout()
+        self.verticalLayout_4.setObjectName(u"verticalLayout_4")
+        self.top_edit = QLineEdit(Elaborate)
+        self.top_edit.setObjectName(u"top_edit")
+        sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Fixed)
+        sizePolicy.setHorizontalStretch(0)
+        sizePolicy.setVerticalStretch(0)
+        sizePolicy.setHeightForWidth(self.top_edit.sizePolicy().hasHeightForWidth())
+        self.top_edit.setSizePolicy(sizePolicy)
+        self.top_edit.setMinimumSize(QSize(200, 0))
+
+        self.verticalLayout_4.addWidget(self.top_edit)
+
+        self.lineEdit_2 = QLineEdit(Elaborate)
+        self.lineEdit_2.setObjectName(u"lineEdit_2")
+        self.lineEdit_2.setEnabled(False)
+        sizePolicy.setHeightForWidth(self.lineEdit_2.sizePolicy().hasHeightForWidth())
+        self.lineEdit_2.setSizePolicy(sizePolicy)
+        self.lineEdit_2.setMinimumSize(QSize(200, 0))
+
+        self.verticalLayout_4.addWidget(self.lineEdit_2)
+
+        self.verticalSpacer_3 = QSpacerItem(20, 26, QSizePolicy.Minimum, QSizePolicy.Fixed)
+
+        self.verticalLayout_4.addItem(self.verticalSpacer_3)
+
+
+        self.horizontalLayout.addLayout(self.verticalLayout_4)
+
+        self.horizontalSpacer_2 = QSpacerItem(23, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+        self.horizontalLayout.addItem(self.horizontalSpacer_2)
+
+
+        self.verticalLayout.addLayout(self.horizontalLayout)
+
+        self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
+
+        self.verticalLayout.addItem(self.verticalSpacer)
+
+        self.checkBox = QCheckBox(Elaborate)
+        self.checkBox.setObjectName(u"checkBox")
+        self.checkBox.setMinimumSize(QSize(0, 0))
+        self.checkBox.setChecked(True)
+
+        self.verticalLayout.addWidget(self.checkBox, 0, Qt.AlignHCenter)
+
+        self.horizontalLayout_2 = QHBoxLayout()
+        self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
+        self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+        self.horizontalLayout_2.addItem(self.horizontalSpacer_3)
+
+        self.btn_OK = QPushButton(Elaborate)
+        self.btn_OK.setObjectName(u"btn_OK")
+
+        self.horizontalLayout_2.addWidget(self.btn_OK)
+
+        self.btn_cancel = QPushButton(Elaborate)
+        self.btn_cancel.setObjectName(u"btn_cancel")
+
+        self.horizontalLayout_2.addWidget(self.btn_cancel)
+
+        self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
+
+        self.horizontalLayout_2.addItem(self.horizontalSpacer_4)
+
+
+        self.verticalLayout.addLayout(self.horizontalLayout_2)
+
+
+        self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
+
+
+        self.retranslateUi(Elaborate)
+        self.btn_cancel.clicked.connect(Elaborate.close)
+
+        QMetaObject.connectSlotsByName(Elaborate)
+    # setupUi
+
+    def retranslateUi(self, Elaborate):
+        Elaborate.setWindowTitle(QCoreApplication.translate("Elaborate", u"Elaborate", None))
+        self.radioButton.setText(QCoreApplication.translate("Elaborate", u"Top Design", None))
+        self.radioButton_2.setText(QCoreApplication.translate("Elaborate", u"Configuration", None))
+        self.radioButton_4.setText(QCoreApplication.translate("Elaborate", u"Auto Infer Top Design", None))
+        self.checkBox.setText(QCoreApplication.translate("Elaborate", u"Allow Unresolved Black Box", None))
+        self.btn_OK.setText(QCoreApplication.translate("Elaborate", u"OK", None))
+        self.btn_cancel.setText(QCoreApplication.translate("Elaborate", u"Cancel", None))
+    # retranslateUi
+