瀏覽代碼

新增 菜单栏-view-Show Tab Bar模式,实现标签栏切换窗口

mrh 2 年之前
父節點
當前提交
429e8ae5b0
共有 5 個文件被更改,包括 35 次插入8 次删除
  1. 10 2
      main_windows.py
  2. 3 3
      sub_windows.py
  3. 0 2
      ui/About.py
  4. 15 1
      ui/MainWindows.ui
  5. 7 0
      ui/ui_MainWindows.py

+ 10 - 2
main_windows.py

@@ -128,6 +128,7 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.actionStatusBar.triggered.connect(lambda: self.statusbar.setHidden(not self.actionStatusBar.isChecked()))
         self.actionSave_as_Default.triggered.connect(self.action_save_as_default)
         self.actionPreferences.triggered.connect(self.preferences)
+        self.actionShow_Tab_Bar.triggered.connect(self.toggle_tab_bar)
         # Design
         self.actionAnalyze.triggered.connect(self.show_analyze_window)
         self.actionElaborate.triggered.connect(self.elaborate_window)
@@ -150,7 +151,7 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.actionReport_Exceptions.triggered.connect(self.report_exception)
         self.actionReport_Clocks.triggered.connect(self.report_clocks)
         self.actionReport_Virtual_Timing.triggered.connect(self.report_virtual_timing)
-        
+        # About
         self.actionAbout.triggered.connect(self.about)
         self.textEdit.document().contentsChanged.connect(self.textEdit_change_size)
         self.textEdit.document().contentsChange.connect(self.textEdit_change_contents)
@@ -158,7 +159,14 @@ class MainWindow(Ui_MainWindow, QMainWindow):
         self.sub_win = SubWindows(self)
         self.sub_win.sig.connect(self.sub_win.add_windows)
         set_font_size(self, self.GUI.TextFontSize,self.GUI.TextFont,self.GUI.SysFontSize,self.GUI.SysFont)
-    
+
+
+    def toggle_tab_bar(self, checked):
+        if checked:
+            self.mdiArea.setViewMode(QMdiArea.TabbedView)
+        else:
+            self.mdiArea.setViewMode(QMdiArea.SubWindowView)
+
     def action_copy(self):
         # 获得文本光标所在控件
         widget:QTextBrowser = self.focusWidget()

+ 3 - 3
sub_windows.py

@@ -57,7 +57,7 @@ class MdiActionWindow(QMainWindow):
         self.regist_action(mainWindow)
         # 修改窗口标题时同步修改menu-Action信息
         self.windowTitleChanged.connect(lambda: self.menuWindow_action.setText(self.windowTitle()))
-        
+                
     def closeEvent(self, event: QCloseEvent):
         self.mainWindow.menuWindow.removeAction(self.menuWindow_action)
         return super().closeEvent(event)
@@ -76,7 +76,7 @@ class MdiActionWindow(QMainWindow):
         self.hide()
         self.show()
 
-    
+        
 class FormWindow(Ui_Form, MdiActionWindow):
     def __init__(self, mainWindow, instan:GuiType._GuiWinForm, pos:QPoint=None) -> None:
         super().__init__(mainWindow)
@@ -96,13 +96,13 @@ class FormWindow(Ui_Form, MdiActionWindow):
         self.mdisubwin.setAttribute(Qt.WA_DeleteOnClose)
         self.mdisubwin.setWindowIcon(QIcon(":/icon/resource/todo-line.png"))
         # mdisubwin.move(mdiArea.x()+(mdiArea.width()-self.width())/2 + self.width()*0.8,mdiArea.y()+(mdiArea.height()-self.height())/2)
-        self.mdisubwin.show()
         width = FormWindow.get_table_width(self.tableWidget, self)
         self.mdisubwin.resize(width, self.height())
         # 必须要show之后才能 ensure_subwin_in_midarea,因为没有显示时Form窗口大小是不正确的
         # 移动到鼠标 pos 位置
         if pos:
             self.mdisubwin.move(ensure_subwin_in_midarea(mdiArea, self, pos))
+        self.mdisubwin.show()
     
     def get_form_model(form:GuiType._GuiForm):
         model = QStandardItemModel(0, len(form.FixedRow))

+ 0 - 2
ui/About.py

@@ -22,5 +22,3 @@ class AboutWindow(Ui_AboutDialog, QDialog):
             self.verticalLayout.insertWidget(index, label)
             index += 1
         self.move(mainWindow.x()+(mainWindow.width()-self.width())/2,mainWindow.y()+(mainWindow.height()-self.height())/2)
-        self.show()
-        self.setHidden(False)

+ 15 - 1
ui/MainWindows.ui

@@ -74,7 +74,11 @@
       <property name="handleWidth">
        <number>5</number>
       </property>
-      <widget class="QMdiArea" name="mdiArea"/>
+      <widget class="QMdiArea" name="mdiArea">
+       <property name="viewMode">
+        <enum>QMdiArea::SubWindowView</enum>
+       </property>
+      </widget>
       <widget class="QTabWidget" name="tabWidget">
        <property name="enabled">
         <bool>true</bool>
@@ -216,6 +220,8 @@
     <addaction name="separator"/>
     <addaction name="actionSave_as_Default"/>
     <addaction name="actionPreferences"/>
+    <addaction name="separator"/>
+    <addaction name="actionShow_Tab_Bar"/>
    </widget>
    <widget class="QMenu" name="menuDsign">
     <property name="title">
@@ -534,6 +540,14 @@
     <string>About</string>
    </property>
   </action>
+  <action name="actionShow_Tab_Bar">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Show Tab Bar</string>
+   </property>
+  </action>
  </widget>
  <resources>
   <include location="img.qrc"/>

+ 7 - 0
ui/ui_MainWindows.py

@@ -128,6 +128,9 @@ class Ui_MainWindow(object):
         self.actionMessages.setChecked(False)
         self.actionAbout = QAction(MainWindow)
         self.actionAbout.setObjectName(u"actionAbout")
+        self.actionShow_Tab_Bar = QAction(MainWindow)
+        self.actionShow_Tab_Bar.setObjectName(u"actionShow_Tab_Bar")
+        self.actionShow_Tab_Bar.setCheckable(True)
         self.centralwidget = QWidget(MainWindow)
         self.centralwidget.setObjectName(u"centralwidget")
         self.gridLayout = QGridLayout(self.centralwidget)
@@ -166,6 +169,7 @@ class Ui_MainWindow(object):
         self.splitter.setHandleWidth(5)
         self.mdiArea = QMdiArea(self.splitter)
         self.mdiArea.setObjectName(u"mdiArea")
+        self.mdiArea.setViewMode(QMdiArea.SubWindowView)
         self.splitter.addWidget(self.mdiArea)
         self.tabWidget = QTabWidget(self.splitter)
         self.tabWidget.setObjectName(u"tabWidget")
@@ -275,6 +279,8 @@ class Ui_MainWindow(object):
         self.menuView.addSeparator()
         self.menuView.addAction(self.actionSave_as_Default)
         self.menuView.addAction(self.actionPreferences)
+        self.menuView.addSeparator()
+        self.menuView.addAction(self.actionShow_Tab_Bar)
         self.menuDsign.addAction(self.actionAnalyze)
         self.menuDsign.addAction(self.actionElaborate)
         self.menuDsign.addAction(self.actionRead_Timing_Constraint)
@@ -345,6 +351,7 @@ class Ui_MainWindow(object):
         self.actionHistory.setText(QCoreApplication.translate("MainWindow", u"History", None))
         self.actionMessages.setText(QCoreApplication.translate("MainWindow", u"Messages", None))
         self.actionAbout.setText(QCoreApplication.translate("MainWindow", u"About", None))
+        self.actionShow_Tab_Bar.setText(QCoreApplication.translate("MainWindow", u"Show Tab Bar", None))
         self.btn_shell.setText(QCoreApplication.translate("MainWindow", u"nc_shell-p>", None))
         self.tabWidget.setTabText(self.tabWidget.indexOf(self.LogPage), QCoreApplication.translate("MainWindow", u"Log", None))
         ___qtablewidgetitem = self.tableHistory.horizontalHeaderItem(0)