资源简介

Python3.x+Pyqt5实现界面左侧树形导航栏;主要用到的工具是Pyqt5的QTreeWidget。

资源截图

代码片段和文件信息

from PyQt5.QtWidgets import (QMainWindow QTreeWidget
                             QTreeWidgetItem QApplication)
from PyQt5.QtGui import QIcon QPixmap

import sys


class TreeWidget(QMainWindow):
    def __init__(self parent=None):
        QMainWindow.__init__(self parent)
        self.setMinimumHeight(600)
        self.setMinimumWidth(400)
        self.setWindowtitle(‘树形导航‘)

        # 创建一个QTreeWidget部件
        self.tree = QTreeWidget()

        # 设置部件的列数为1
        self.tree.setColumnCount(1)

        # 设置头部信息,因为上面设置列数为2,所以要设置两个标识符
        # self.tree.setHeaderLabels([‘节点名称‘])

        # 设置表头信息:隐藏表头
        self.tree.setHeaderHidden(1)

        # 设置root和root2为self.tree的子树,所以root和root2就是跟节点
        root = QTreeWidgetItem(self.tree)
        root2 = QTreeWidgetItem(self.tree)

        # 设置root节点的打开/关闭状态下的不同的图片
        icon = QIcon()
        # 节点打开状态
        icon.addPixmap(QPixmap(“./folder open.png“) QIcon.Normal QIcon.On)
        # 节点关闭状态  
        icon.addPixmap(QPixmap(“./folder closed.png“) QIcon.Normal QIcon.Off)
        root.setIcon(0 icon)

        # 设置根节点的名称
        root.setText(0 ‘第一节点‘)
        root2.setText(0 ‘第二节点‘)

        # 为root节点设置子结点
        child1 = QTreeWidgetItem(root)

        # 设置child1节点的图片
        icon2 = QIcon()
        icon2.addPixmap(QPixmap(“./Original Point.png“) QIcon.Normal)
        child1.setIcon(0 icon2)

        child1.setText(0 ‘child1‘)
        # child1.setText(1 ‘name1‘)
        child2 = QTreeWidgetItem(root)
        # 设置child2节点的图片
        child2.setIcon(0 icon2)
        child2.setText(0 ‘child2‘)
        # child2.setText(1 ‘name2‘)
        child3 = QTreeWidgetItem(root)

        # 设置child3节点的打开 / 关闭状态下的不同的图片
        child3.setIcon(0 icon)

        child3.setText(0 ‘child3‘)
        child4 = QTreeWidgetItem(child3)
        # 设置child4节点的图片
        child4.setIcon(0 icon2)
        child4.setText(0 ‘child4‘)
        # child4.setText(1 ‘name4‘)

        # 为root2节点设置子结点
        child1 = QTreeWidgetItem(root2)
        child1.setText(0 ‘child1‘)
        # child1.setText(1 ‘name1‘)
        child2 = QTreeWidgetItem(root2)
        child2.setText(0 ‘child2‘)
        # child2.setText(1 ‘name2‘)
        child3 = QTreeWidgetItem(root2)
        child3.setText(0 ‘child3‘)
        child4 = QTreeWidgetItem(child3)
        child4.setText(0 ‘child4‘)
        # child4.setText(1 ‘name4‘)

        # self.tree.addTopLevelItem(root)
        # self.tree.addTopLevelItem(root2)

        # 将QTreeWidget部件设置为该QMainWindow窗口的核心框架
        self.setCentralWidget(self.tree)


app = QApplication(sys.argv)
# app.aboutToQuit.connect(app.deleteLater)
tp = TreeWidget()
tp.show()
app.exec_()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        228  2018-07-30 10:56  wangyong_11\.idea\inspectionProfiles\profiles_settings.xml

     文件        213  2018-07-30 10:56  wangyong_11\.idea\misc.xml

     文件        274  2018-07-30 10:56  wangyong_11\.idea\modules.xml

     文件        459  2018-07-30 10:56  wangyong_11\.idea\wangyong_11.iml

     文件      20678  2018-07-30 10:56  wangyong_11\.idea\workspace.xml

     文件        821  2018-07-30 04:52  wangyong_11\folder closed.png

     文件        855  2018-07-30 04:52  wangyong_11\folder open.png

     文件        594  2018-07-30 05:54  wangyong_11\Original Point.png

     文件       3143  2018-07-30 10:53  wangyong_11\test_06.py

     目录          0  2018-07-30 10:56  wangyong_11\.idea\inspectionProfiles

     目录          0  2018-07-30 10:56  wangyong_11\.idea

     目录          0  2018-07-30 10:56  wangyong_11

----------- ---------  ---------- -----  ----

                27265                    12


评论

共有 条评论