鱼C论坛

 找回密码
 立即注册
查看: 652|回复: 1

请问PyQt的Treeview怎么展开一层节点

[复制链接]
最佳答案
0 
发表于 2018-2-1 21:41:24 | 显示全部楼层 |阅读模式
50鱼币
本帖最后由 继续思索 于 2018-2-1 21:43 编辑

请问PyQt的Treeview控件怎样,初始化展开指定一层节点?如下图
有鱼油知道的麻烦告知一下。谢谢


需要这样的效果,有什么方法可用?
就打开窗口时,自动的展开第一层。
捕获1.PNG


而不是下边这样 全展开的。。。
捕获.PNG



  1. from PyQt5.QtCore import  Qt, QRect
  2. from PyQt5.QtGui import QStandardItemModel, QStandardItem
  3. from PyQt5.QtWidgets import QDialog, QApplication
  4. from PyQt5 import QtWidgets


  5. class Dialog(QDialog):
  6.     """
  7.     Class documentation goes here.
  8.     """
  9.     def __init__(self, parent=None):
  10.         """
  11.         Constructor
  12.         
  13.         @param parent reference to the parent widget
  14.         @type QWidget
  15.         """
  16.         super(Dialog, self).__init__(parent)
  17.         self.setupUi(self)
  18.         
  19.         date_1 = ["2018-1-1", "2018-1-2","2018-1-3"]
  20.         title = [["标题1","标题2" ], ["标题A","标题B","标题C"], ["标题a"]]
  21.         connect = [[["内容1","内容1"], ["内容1","内容1"]],\
  22.                    [["内容1","内容2222"], ["内容2222","内容2222"], ["内容2222","内容2222"]], \
  23.                    [["内容333","内容333"]]
  24.                    ]
  25.         self.tv_Catalog_two_2(self.treeView,date_1, title,connect  )
  26.         self.treeView.expandAll()
  27.         
  28.     def setupUi(self, Dialog):
  29.         Dialog.setObjectName("Dialog")
  30.         Dialog.resize(765, 500)
  31.         Dialog.setSizeGripEnabled(True)
  32.         self.treeView = QtWidgets.QTreeView(Dialog)
  33.         self.treeView.setGeometry(QRect(20, 20, 711, 441))
  34.         self.treeView.setObjectName("treeView")
  35.         
  36.         
  37.     def tv_Catalog_two_2(self, controls,  list_data_one, list_data_two, list_data_three, win_title="标题" ):
  38.         """
  39.         # 参数1:        
  40.         """
  41.         model = QStandardItemModel(controls)               
  42.         model.setColumnCount( 1 )                           
  43.         model.setRowCount( len(list_data_one) )           
  44.         model.setHeaderData(0, Qt.Horizontal, win_title )  
  45.         
  46.         count_i = -1
  47.         count_j = -1
  48.         
  49.         for temp_i in list_data_one :                       
  50.             count_i += 1
  51.             root_item = QStandardItem( temp_i )
  52.             for temp_j in list_data_two[count_i]:
  53.                 count_j += 1
  54.                 item2 = QStandardItem( temp_j )            
  55.                 root_item.appendRow(item2)
  56.                 for temp_p in list_data_three[count_i][count_j]:            
  57.                     item3 = QStandardItem( temp_p )
  58.                     item2.appendRow(item3)
  59.             count_j = -1
  60.             model.setItem(count_i, 0, root_item )
  61.         controls.setModel(model)  


  62. if __name__ == "__main__":
  63.     import sys
  64.     app = QApplication(sys.argv)

  65.     ui = Dialog()

  66.     ui.show()
  67.     sys.exit(app.exec_())
复制代码

最佳答案
0 
 楼主| 发表于 2018-2-6 13:35:37 | 显示全部楼层
没人有这样的需求吗? 知道的鱼油麻烦告知一下 看文档又没理解到。没看懂。。无奈了。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-15 23:02

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表