PyQt4 QTreeView的简单树

本文档介绍如何使用Python的PyQt4库创建一个简单的QTreeView树结构,并指出当前遇到的问题——QTreeView列宽无法自动调整。
摘要由CSDN通过智能技术生成

简单的树结构,目前的残留问题是无法自动调整QTreeView的宽度

1、新建文件夹,任意英文名字,比如Main

创建py文件,内容如下:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'GUI.ui'
#
# Created: Mon Jan 08 19:54:27 2018
#      by: PyQt4 UI code generator 4.11.1
#
# WARNING! All changes made in this file will be lost!
import os
import sys
import locale
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtCore, QtGui
from PyQt4 import QtCore, QtGui
# try:
#     import simpletreemodel_rc3
# except ImportError:
#     import simpletreemodel_rc2
class TreeItem(object):
    def __init__(self, data, parent=None):
        self.parentItem = parent
        self.itemData = data
        self.childItems = []

    def appendChild(self, item):
        self.childItems.append(item)

    def child(self, row):
        return self.childItems[row]

    def childCount(self):
        return len(self.childItems)

    def columnCount(self):
        return len(self.itemData)

    def data(self, column):
        try:
            return self.itemData[column]
        except IndexError:
            return None

    def parent(self):
        return self.parentItem

    def row(self):
        if self.parentItem:
            return self.parentItem.childItems.index(self)

        return 0


class TreeModel(QtCore.QAbstractItemModel):

    def __init__(self, data, parent=None):
        # app = QApplication(sys.argv)
        # mycode = locale.getpreferredencoding()
        # code = QTextCodec.codecForName(mycode)
        # QTextCodec.setCodecForLocale(code)
        # QTextCodec.setCodecForTr(code)
        # QTextCodec.setCodecForCStrings(code)
        super(TreeModel, self).__init__(parent)
        self.checkLisk = []
        self.rootItem = TreeItem(["Name"])
        self.setupModelData(data.split('\n'), self.rootItem)

    def <
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值