浏览代码

20241216 main_new.py初始化全数据库树状展示(点击未实现),查询展示未写完

rmy 5 个月前
父节点
当前提交
e4e2d76b73
共有 1 个文件被更改,包括 118 次插入41 次删除
  1. 118
    41
      Front/main_new.py

+ 118
- 41
Front/main_new.py 查看文件

14
 #
14
 #
15
 # ///////////////////////////////////////////////////////////////
15
 # ///////////////////////////////////////////////////////////////
16
 from PySide6.QtWidgets import QFileDialog,QWidget, QVBoxLayout, QTreeWidget, QApplication, QTreeWidgetItem
16
 from PySide6.QtWidgets import QFileDialog,QWidget, QVBoxLayout, QTreeWidget, QApplication, QTreeWidgetItem
17
-from PySide6.QtCore import Signal, Slot,Qt,QObject
17
+from PySide6.QtCore import Signal,  Qt, Slot, QObject
18
 from PySide6.QtSql import QSqlTableModel,QSqlDatabase
18
 from PySide6.QtSql import QSqlTableModel,QSqlDatabase
19
 import sqlite3
19
 import sqlite3
20
 from PySide6.QtGui import QIcon
20
 from PySide6.QtGui import QIcon
94
     """
94
     """
95
     items_changed: Signal = Signal(str)
95
     items_changed: Signal = Signal(str)
96
     styleSheet_changed: Signal = Signal(str)
96
     styleSheet_changed: Signal = Signal(str)
97
-    itemClicked: Signal = Signal(object)
98
-    itemDoubleClicked: Signal = Signal(object)
99
  
97
  
100
     def __init__(self, items: list[TreeWidgetItem] = None, styleSheet: str = None):
98
     def __init__(self, items: list[TreeWidgetItem] = None, styleSheet: str = None):
101
         super(ElTreeData, self).__init__()
99
         super(ElTreeData, self).__init__()
175
         # 成果预览
173
         # 成果预览
176
         widgets.btn_new.clicked.connect(self.buttonClick)
174
         widgets.btn_new.clicked.connect(self.buttonClick)
177
         # 数据一览
175
         # 数据一览
178
-        
176
+        widgets.btn_data.clicked.connect(self.buttonClick)
179
         # 皮肤切换
177
         # 皮肤切换
180
         widgets.btn_message.clicked.connect(self.buttonClick)
178
         widgets.btn_message.clicked.connect(self.buttonClick)
181
         # 打开上传文件夹
179
         # 打开上传文件夹
194
 
192
 
195
         widgets.settingsTopBtn.clicked.connect(openCloseRightBox)
193
         widgets.settingsTopBtn.clicked.connect(openCloseRightBox)
196
 
194
 
195
+
196
+
197
+
197
         # 展示APP
198
         # 展示APP
198
         # ///////////////////////////////////////////////////////////////
199
         # ///////////////////////////////////////////////////////////////
199
         self.show()
200
         self.show()
223
         widgets.stackedWidget.setCurrentWidget(widgets.home)
224
         widgets.stackedWidget.setCurrentWidget(widgets.home)
224
         widgets.btn_home.setStyleSheet(UIFunctions.selectMenu(widgets.btn_home.styleSheet()))
225
         widgets.btn_home.setStyleSheet(UIFunctions.selectMenu(widgets.btn_home.styleSheet()))
225
 
226
 
227
+        #初始化树状组件
228
+        #///////////////////////////////////////////////////////////////
229
+        self.itemClicked: Signal = Signal(object)
230
+        self.itemDoubleClicked: Signal = Signal(object)
231
+        sqll = self.sql_init()
232
+        sqltree = ElTreeData(items=sqll)
233
+        self.data = sqltree
234
+        # 将按钮的点击信号绑定到当前类的点击信号
235
+        # 信号改为展示方法,这里同导出展示
236
+        widgets.allTreeWidget.itemClicked.connect(lambda extend: print("单击->扩展数据为:", extend))
237
+        widgets.allTreeWidget.itemDoubleClicked.connect(lambda extend: print("双击->扩展数据为:", extend))
238
+        self.__render_items(True)
239
+
226
         self.bind()
240
         self.bind()
227
 
241
 
228
-        #treewidget
229
-        self.data = ElTreeData
230
-        widgets.allTreeWidget.itemClicked.connect(lambda item: self.itemClicked.emit(item.data(0, Qt.UserRole + 1)))
231
-        widgets.allTreeWidget.itemDoubleClicked.connect(lambda item: self.itemDoubleClicked.emit(item.data(0, Qt.UserRole + 1)))
232
-        # self.__render_items(True)
233
 
242
 
234
     def __render_items(self, is_clear: bool):
243
     def __render_items(self, is_clear: bool):
235
         if is_clear:
244
         if is_clear:
257
     def bind(self):
266
     def bind(self):
258
         # 计算
267
         # 计算
259
         widgets.compute.clicked.connect(self.computeClick)
268
         widgets.compute.clicked.connect(self.computeClick)
260
-        #数据库展示(初始化)
261
-        widgets.btn_data.clicked.connect(self.dataClick)
269
+        widgets.search.clicked.connect(self.searchClick)
262
 
270
 
263
     #删除tableview
271
     #删除tableview
264
     def delete_table_view(table_view):
272
     def delete_table_view(table_view):
508
             xx = xx + 1 
516
             xx = xx + 1 
509
         return model
517
         return model
510
 
518
 
511
-    
512
-
513
-    def dataClick(self):
514
-        # GET BUTTON CLICKED
515
-        btn = self.sender()
516
-        btnName = btn.objectName()
519
+    #设一个全局变量,存数据库中所有的包含内容(数据库-三种方法-表)
520
+    dblist = []
521
+    global dblist
522
+    #初始化数据一览(数据库全展示)
523
+    def sql_init(self):
517
         #初始化全部数据库
524
         #初始化全部数据库
518
         inpath = r'D:\4work_now\20240819GS\20241211\SQL'
525
         inpath = r'D:\4work_now\20240819GS\20241211\SQL'
519
         #读取所有的数据库名
526
         #读取所有的数据库名
520
-        list1 = []
527
+        sqlitem = []
528
+        id = 1
521
         for filename in os.listdir(inpath):
529
         for filename in os.listdir(inpath):
530
+            #数据库
522
             dbname = filename.split('.',-1)[0]
531
             dbname = filename.split('.',-1)[0]
523
             dbpath = os.path.join(inpath,filename)
532
             dbpath = os.path.join(inpath,filename)
524
-            lista = []
525
-            lista.append(dbname)
526
-            lista.append(dbpath)
527
-            list1.append(lista)
533
+            sqlitem.append(TreeWidgetItem(id,0,dbname,icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-clone.png")))
534
+            pid = id
535
+            id = id + 1
536
+            #三种方法
537
+            sqlitem.append(TreeWidgetItem(id, pid, '水准测段高差稳定计算', icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-description.png")))
538
+            gcid = id
539
+            id = id + 1
540
+            sqlitem.append(TreeWidgetItem(id, pid, '控制网复测平面基准计算', icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-description.png")))
541
+            gsid = id
542
+            id = id + 1
543
+            sqlitem.append(TreeWidgetItem(id, pid, '平面控制网稳定性计算', icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-description.png")))
544
+            wdid = id
545
+            id = id + 1
528
             #读取所有的表名(三种方式往下)
546
             #读取所有的表名(三种方式往下)
529
             db1 = sqlite3.connect(dbpath)
547
             db1 = sqlite3.connect(dbpath)
530
             #获取游标
548
             #获取游标
532
             sqlstr1 = 'SELECT TableName FROM GC_Input_Param;'
550
             sqlstr1 = 'SELECT TableName FROM GC_Input_Param;'
533
             cursor1.execute(sqlstr1)
551
             cursor1.execute(sqlstr1)
534
             result1 = cursor1.fetchall()
552
             result1 = cursor1.fetchall()
553
+            for re1 in result1:
554
+                str1 = re1[0].decode('utf-8')
555
+                sqlitem.append(TreeWidgetItem(id, gcid, str1, icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-file.png"),extend=str1))
556
+                list1 = []
557
+                list1.append(dbname)
558
+                list1.append('水准测段高差稳定计算')
559
+                list1.append(str1)
560
+                dblist.append(list1)
561
+                id = id + 1
535
             sqlstr2 = 'SELECT TableName FROM GS_Input_Param;'
562
             sqlstr2 = 'SELECT TableName FROM GS_Input_Param;'
536
             cursor1.execute(sqlstr2)
563
             cursor1.execute(sqlstr2)
537
             result2 = cursor1.fetchall()
564
             result2 = cursor1.fetchall()
565
+            for re2 in result2:
566
+                str2 = re2[0].decode('utf-8')
567
+                sqlitem.append(TreeWidgetItem(id, gsid, str2, icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-file.png"),extend=str2))
568
+                list2 = []
569
+                list2.append(dbname)
570
+                list2.append('控制网复测平面基准计算')
571
+                list2.append(str2)
572
+                dblist.append(list2)
573
+                id = id + 1
538
             sqlstr3 = 'SELECT TableName FROM WD_Input_Param;'
574
             sqlstr3 = 'SELECT TableName FROM WD_Input_Param;'
539
             cursor1.execute(sqlstr3)
575
             cursor1.execute(sqlstr3)
540
             result3 = cursor1.fetchall()
576
             result3 = cursor1.fetchall()
541
-        atw_button = ElTreeData(items=[
542
-        TreeWidgetItem(1, 0, "User", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 1}),
543
-        TreeWidgetItem(2, 1, "Child", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 2}),
544
-        TreeWidgetItem(3, 1, "Child", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 3}),
545
-        TreeWidgetItem(4, 2, "Child", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 4}),
546
-        TreeWidgetItem(5, 2, "Child", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 5}),
547
-        TreeWidgetItem(6, 5, "Child", icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil_file.png"), extend={'id': 6}),
548
-        TreeWidgetItem(7, 5, "Child", extend={'id': 7}),
549
-        TreeWidgetItem(8, 5, "Child", extend={'id': 8}),
550
-        TreeWidgetItem(9, 8, "Child", extend={'id': 9}),
551
-        ])
552
-    
553
-        # atw_button.itemClicked.connect(lambda extend: print("单击->扩展数据为:", extend))
554
-        # atw_button.itemDoubleClicked.connect(lambda extend: print("双击->扩展数据为:", extend))
555
-        # atw_button.show()
556
-        widgets.stackedWidget.setCurrentWidget(widgets.datainfo)
557
-        UIFunctions.resetStyle(self, btnName)  # RESET ANOTHERS BUTTONS SELECTED
558
-        btn.setStyleSheet(UIFunctions.selectMenu(btn.styleSheet()))
559
-
577
+            for re3 in result3:
578
+                str3 = re3[0].decode('utf-8')
579
+                sqlitem.append(TreeWidgetItem(id, wdid, str3, icon=QIcon("D:/4work_now/20240819GS/20241211/Front/images/icons/cil-file.png"),extend=str3))
580
+                list3 = []
581
+                list3.append(dbname)
582
+                list3.append('平面控制网稳定性计算')
583
+                list3.append(str3)
584
+                dblist.append(list3)
585
+                id = id + 1
586
+        return sqlitem
587
+
588
+    #关键词查询
589
+    def sql_search(self):
590
+        # GET BUTTON CLICKED
591
+        btn = self.sender()
592
+        btnName = btn.objectName()
593
+        #获取文本
594
+        text1 = self.ui.lineEdit_2.text()
595
+        #符合的list
596
+        fhlist = []
597
+        #查询(待优化)
598
+        for list1 in dblist:
599
+            for li in list1:
600
+                if text1 in li:
601
+                    fhlist.append(list1)
602
+                    break
603
+        #更新item值
604
+        sqlitem = []
605
+        #前两层是否一致
606
+        str1 = ''
607
+        str2 = ''
608
+        id = 1
609
+        pid = 0
610
+        fid = 0
611
+        for list2 in fhlist:
612
+            dbname = list2[0]
613
+            if dbname != str1:
614
+                str1 = dbname
615
+                sqlitem.append(TreeWidgetItem(id, 0, dbname, icon=QIcon(
616
+                    "D:/4work_now/20240819GS/20241211/Front/images/icons/cil-clone.png")))
617
+                pid = id
618
+            id = id + 1
619
+            mename = list2[1]
620
+            if mename != str2:
621
+                str2 = mename
622
+                sqlitem.append(TreeWidgetItem(id, pid, mename, icon=QIcon(
623
+                    "D:/4work_now/20240819GS/20241211/Front/images/icons/cil-description.png")))
624
+                fid = id
625
+            id = id + 1
626
+            sqlitem.append(TreeWidgetItem(id, fid, list2[2], icon=QIcon(
627
+                "D:/4work_now/20240819GS/20241211/Front/images/icons/cil-file.png"), extend=list2[2]))
628
+        #展示
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+    #直接这个基础上改点选输出表格(未改)
560
     def computeClick(self):
637
     def computeClick(self):
561
         # GET BUTTON CLICKED
638
         # GET BUTTON CLICKED
562
         btn = self.sender()
639
         btn = self.sender()

正在加载...
取消
保存