Просмотр исходного кода

mainwindow菜单栏✅变更为“圆点”,三区域改为两区域(Hierarchy并入Report区区域)
完成菜单栏Windows切换Console(Log,History,Message)页面

mrh 3 лет назад
Родитель
Сommit
7f3283c631
5 измененных файлов с 78 добавлено и 22 удалено
  1. 4 2
      gui.py
  2. 29 3
      main_windows.py
  3. 0 2
      sub_windows.py
  4. 30 6
      ui/MainWindows.ui
  5. 15 9
      ui/ui_MainWindows.py

+ 4 - 2
gui.py

@@ -43,8 +43,10 @@ def handle_signal(dat):
     if isinstance(dat, str):
         dat = dat.lower()
         sig_call = {'start':mainWindows.show, 'stop':mainWindows.hide, 'exit':mainWindows.close,
-                    'busy': lambda: mainWindows.statusbar.showMessage("Busy"), 
-                    "ready": lambda: mainWindows.statusbar.showMessage("Ready"), 
+                    # 'busy': lambda: mainWindows.statusbar.showMessage("Busy"), 
+                    # "ready": lambda: mainWindows.statusbar.showMessage("Ready"), 
+                    'busy': lambda: mainWindows.status_label.setText("Busy"), 
+                    "ready": lambda: mainWindows.status_label.setText("Ready"), 
                     }
         call = sig_call.get(dat)
         if call:

+ 29 - 3
main_windows.py

@@ -88,14 +88,19 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.setupUi(self)
         # 这里显示一下是为了能获取到 mdiArea 的尺寸,给 sub_windows 使用
         self.show()
+        self.GUI = GUI
+        self.setWindowTitle(GUI.Title)
+
         self.btn_shell.setText(GUI.Prompt)
         self.btn_shell.clicked.connect(self.click_btn_sell)
         self.tabWidget.currentChanged.connect(self.table_widget_change)
         self.tableHistory.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
         self.tableHistory.customContextMenuRequested.connect(self.history_right_click_menu)
         self.MessageTreeView.customContextMenuRequested.connect(self.message_right_click_menu)
-        self.statusbar.showMessage("Ready")
+        self.status_label = QLabel("Ready")
+        self.statusbar.addWidget(self.status_label)
         self.loader = QUiLoader()
+        
         self.actionCopy.triggered.connect(self.action_copy)
         self.actionPast.triggered.connect(self.action_paste)
         self.actionSelect_all.triggered.connect(self.action_select_all)
@@ -118,16 +123,26 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.actionStatusBar.triggered.connect(lambda: self.statusbar.setHidden(not self.actionStatusBar.isChecked()))
         self.actionSave_as_Default
         self.actionPreferences
+        # Design
         self.actionReport_Exceptions.triggered.connect(self.about)
         self.actionReport_Virtual_Timing.triggered.connect(self.add_sub_win)
+        # Windows
+        self.action_win_group = QActionGroup(self)
+        self.action_Hierarchy.setActionGroup(self.action_win_group)
+        action_tabgroup = QActionGroup(self)
+        self.actionLog.setActionGroup(action_tabgroup)
+        self.actionHistory.setActionGroup(action_tabgroup)
+        self.actionMessages.setActionGroup(action_tabgroup)
+        self.actionLog.triggered.connect(self.action_tab_widget)
+        self.actionHistory.triggered.connect(self.action_tab_widget)
+        self.actionMessages.triggered.connect(self.action_tab_widget)
+        
         self.actionAbout.triggered.connect(self.about)
         self.textEdit.document().contentsChanged.connect(self.textEdit_change_size)
         self.textEdit.document().contentsChange.connect(self.textEdit_change_contents)
         sys.stdout = Stream()
         sys.stdout.newText.connect(self.outputWritten)
         sys.stderr = sys.stdout
-        self.GUI = GUI
-        self.setWindowTitle(GUI.Title)
                 
         self.sub_win = SubWindows(self)
         self.sub_win.sig.connect(self.sub_win.add_windows)
@@ -156,6 +171,17 @@ class MainWindow(Ui_MainWindow, QMainWindow):
             return
         widget.selectAll()
     
+    def action_tab_widget(self):
+        action_sender = self.sender()
+        action = {
+            self.actionLog: 0, 
+            self.actionHistory: 1, 
+            self.actionMessages: 2, 
+        }
+        index = action.get(action_sender)
+        if index != None:
+            self.tabWidget.setCurrentIndex(index)
+    
     def read_timing_constraint(self):
         ReadTimeWindow(self, os.getcwd())
     

+ 0 - 2
sub_windows.py

@@ -365,8 +365,6 @@ class SubWindows(QObject):
                 row_items=[QStandardItem(text) for text in row]
                 model.appendRow(row_items)
             win.sheets.addItem(sheet_name)
-            # win.sheets.currentText()
-            # win
             win.models.append(model)
         if win.sheets.count() > 0:
             win.sheets.setCurrentIndex(0)

+ 30 - 6
ui/MainWindows.ui

@@ -72,6 +72,9 @@
       </property>
       <widget class="QMdiArea" name="mdiArea"/>
       <widget class="QTabWidget" name="tabWidget">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
        <property name="contextMenuPolicy">
         <enum>Qt::NoContextMenu</enum>
        </property>
@@ -82,15 +85,24 @@
         <number>0</number>
        </property>
        <widget class="QWidget" name="LogPage">
+        <property name="enabled">
+         <bool>true</bool>
+        </property>
         <attribute name="title">
          <string>Log</string>
         </attribute>
         <layout class="QGridLayout" name="gridLayout_2">
          <item row="0" column="0">
           <widget class="QTextBrowser" name="LogText">
+           <property name="enabled">
+            <bool>true</bool>
+           </property>
            <property name="contextMenuPolicy">
             <enum>Qt::NoContextMenu</enum>
            </property>
+           <property name="styleSheet">
+            <string notr="true"/>
+           </property>
            <property name="textInteractionFlags">
             <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
            </property>
@@ -225,10 +237,7 @@
     <property name="title">
      <string>Window</string>
     </property>
-    <addaction name="actionDesign_Hierarchy"/>
-    <addaction name="separator"/>
-    <addaction name="actionReport1"/>
-    <addaction name="actionReport2"/>
+    <addaction name="action_Hierarchy"/>
     <addaction name="separator"/>
     <addaction name="actionLog"/>
     <addaction name="actionHistory"/>
@@ -366,6 +375,9 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
    <property name="text">
     <string>StatusBar</string>
    </property>
@@ -451,7 +463,7 @@
     <string>Report Virtual Timing</string>
    </property>
   </action>
-  <action name="actionDesign_Hierarchy">
+  <action name="action_Hierarchy">
    <property name="checkable">
     <bool>true</bool>
    </property>
@@ -459,7 +471,7 @@
     <bool>true</bool>
    </property>
    <property name="text">
-    <string>Design Hierarchy</string>
+    <string>Hierarchy</string>
    </property>
   </action>
   <action name="actionReport1">
@@ -474,6 +486,9 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
    <property name="text">
     <string>Report2</string>
    </property>
@@ -482,6 +497,9 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
    <property name="text">
     <string>Log</string>
    </property>
@@ -490,6 +508,9 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="checked">
+    <bool>false</bool>
+   </property>
    <property name="text">
     <string>History</string>
    </property>
@@ -498,6 +519,9 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="checked">
+    <bool>false</bool>
+   </property>
    <property name="text">
     <string>Messages</string>
    </property>

+ 15 - 9
ui/ui_MainWindows.py

@@ -61,6 +61,7 @@ class Ui_MainWindow(object):
         self.actionStatusBar = QAction(MainWindow)
         self.actionStatusBar.setObjectName(u"actionStatusBar")
         self.actionStatusBar.setCheckable(True)
+        self.actionStatusBar.setChecked(True)
         self.actionSave_as_Default = QAction(MainWindow)
         self.actionSave_as_Default.setObjectName(u"actionSave_as_Default")
         self.actionPreferences = QAction(MainWindow)
@@ -99,25 +100,29 @@ class Ui_MainWindow(object):
         self.actionReport_Clocks.setObjectName(u"actionReport_Clocks")
         self.actionReport_Virtual_Timing = QAction(MainWindow)
         self.actionReport_Virtual_Timing.setObjectName(u"actionReport_Virtual_Timing")
-        self.actionDesign_Hierarchy = QAction(MainWindow)
-        self.actionDesign_Hierarchy.setObjectName(u"actionDesign_Hierarchy")
-        self.actionDesign_Hierarchy.setCheckable(True)
-        self.actionDesign_Hierarchy.setChecked(True)
+        self.action_Hierarchy = QAction(MainWindow)
+        self.action_Hierarchy.setObjectName(u"action_Hierarchy")
+        self.action_Hierarchy.setCheckable(True)
+        self.action_Hierarchy.setChecked(True)
         self.actionReport1 = QAction(MainWindow)
         self.actionReport1.setObjectName(u"actionReport1")
         self.actionReport1.setCheckable(True)
         self.actionReport2 = QAction(MainWindow)
         self.actionReport2.setObjectName(u"actionReport2")
         self.actionReport2.setCheckable(True)
+        self.actionReport2.setChecked(True)
         self.actionLog = QAction(MainWindow)
         self.actionLog.setObjectName(u"actionLog")
         self.actionLog.setCheckable(True)
+        self.actionLog.setChecked(True)
         self.actionHistory = QAction(MainWindow)
         self.actionHistory.setObjectName(u"actionHistory")
         self.actionHistory.setCheckable(True)
+        self.actionHistory.setChecked(False)
         self.actionMessages = QAction(MainWindow)
         self.actionMessages.setObjectName(u"actionMessages")
         self.actionMessages.setCheckable(True)
+        self.actionMessages.setChecked(False)
         self.actionAbout = QAction(MainWindow)
         self.actionAbout.setObjectName(u"actionAbout")
         self.centralwidget = QWidget(MainWindow)
@@ -161,15 +166,19 @@ class Ui_MainWindow(object):
         self.splitter.addWidget(self.mdiArea)
         self.tabWidget = QTabWidget(self.splitter)
         self.tabWidget.setObjectName(u"tabWidget")
+        self.tabWidget.setEnabled(True)
         self.tabWidget.setContextMenuPolicy(Qt.NoContextMenu)
         self.tabWidget.setTabPosition(QTabWidget.South)
         self.LogPage = QWidget()
         self.LogPage.setObjectName(u"LogPage")
+        self.LogPage.setEnabled(True)
         self.gridLayout_2 = QGridLayout(self.LogPage)
         self.gridLayout_2.setObjectName(u"gridLayout_2")
         self.LogText = QTextBrowser(self.LogPage)
         self.LogText.setObjectName(u"LogText")
+        self.LogText.setEnabled(True)
         self.LogText.setContextMenuPolicy(Qt.NoContextMenu)
+        self.LogText.setStyleSheet(u"")
         self.LogText.setTextInteractionFlags(Qt.LinksAccessibleByKeyboard|Qt.LinksAccessibleByMouse|Qt.TextBrowserInteraction|Qt.TextSelectableByKeyboard|Qt.TextSelectableByMouse)
 
         self.gridLayout_2.addWidget(self.LogText, 0, 0, 1, 1)
@@ -273,10 +282,7 @@ class Ui_MainWindow(object):
         self.menuReport.addAction(self.actionReport_Clocks)
         self.menuReport.addSeparator()
         self.menuReport.addAction(self.actionReport_Virtual_Timing)
-        self.menuWindow.addAction(self.actionDesign_Hierarchy)
-        self.menuWindow.addSeparator()
-        self.menuWindow.addAction(self.actionReport1)
-        self.menuWindow.addAction(self.actionReport2)
+        self.menuWindow.addAction(self.action_Hierarchy)
         self.menuWindow.addSeparator()
         self.menuWindow.addAction(self.actionLog)
         self.menuWindow.addAction(self.actionHistory)
@@ -330,7 +336,7 @@ class Ui_MainWindow(object):
         self.actionReport_Exceptions.setText(QCoreApplication.translate("MainWindow", u"Report Exceptions", None))
         self.actionReport_Clocks.setText(QCoreApplication.translate("MainWindow", u"Report Clocks", None))
         self.actionReport_Virtual_Timing.setText(QCoreApplication.translate("MainWindow", u"Report Virtual Timing", None))
-        self.actionDesign_Hierarchy.setText(QCoreApplication.translate("MainWindow", u"Design Hierarchy", None))
+        self.action_Hierarchy.setText(QCoreApplication.translate("MainWindow", u"Hierarchy", None))
         self.actionReport1.setText(QCoreApplication.translate("MainWindow", u"Report1", None))
         self.actionReport2.setText(QCoreApplication.translate("MainWindow", u"Report2", None))
         self.actionLog.setText(QCoreApplication.translate("MainWindow", u"Log", None))