在QTreeView中顯示EDS檔案的部分內容

2021-08-19 05:14:32 字數 2048 閱讀 9652

使用開源的canopen for python可以輕鬆的讀取eds檔案中的內容,在此以從零開始新建符合cia ds301的物件字典eds檔案中建立的eds檔案作為示例,載入後的效果如下圖所示:

因為**非常簡單,在此僅貼出**而不作說明,**如下:

import canopen

import sys

from pyqt5.qtcore import (qmodelindex, qt, qvariant, pyqtsignal)

from pyqt5.qtgui import (qstandarditem, qstandarditemmodel)

data_type =

class

mainwindow

(qmainwindow):

def__init__

(self, parent=none):

super(mainwindow,self).__init__(parent)

treeview = qtreeview()

self.setcentralwidget(treeview)

standardmodel = qstandarditemmodel()

standardmodel.sethorizontalheaderlabels(('索引', '名稱', '數值', '最小值', '最大值', '資料型別', '訪問性'))

network = canopen.network()

node = network.add_node(1, 'ds301.eds')

item = standardmodel.invisiblerootitem()

for obj in node.object_dictionary.values():

tmp = [qstandarditem(hex(obj.index)),

qstandarditem(obj.name),

qstandarditem(str(obj.default) if hasattr(obj, 'default') else

none),

qstandarditem(str(obj.min) if hasattr(obj, 'min') else

none),

qstandarditem(str(obj.max) if hasattr(obj, 'max') else

none),

qstandarditem(data_type.get(obj.data_type if hasattr(obj, 'data_type') else

none)),

qstandarditem(obj.access_type if hasattr(obj, 'access_type') else

none),

]if isinstance(obj, canopen.objectdictionary.record):

for subobj in obj.values():

qstandarditem(subobj.name),

qstandarditem(str(subobj.default)),

qstandarditem(str(subobj.min)),

qstandarditem(str(subobj.max)),

qstandarditem(data_type.get(subobj.data_type)),

qstandarditem(subobj.access_type),

])elif isinstance(obj, canopen.objectdictionary.array):

treeview.setmodel(standardmodel)

treeview.expandall()

if __name__ == '__main__':

w = mainwindow()

w.show()

a.exec_()

EasyUI中datagrid控制項的Editor

datagrid 中的editor 每個editor 支援如下方法 方法 引數 說明 init container,options 初始化editor 並返還目標物件 destroy target 銷毀 editor getvalue target 從 editor text 中讀取值 setval...

NameNode中的Fsimage和Edits解析

在在 opt module hadoop 2.7.2 data tmp dfs name current 目錄下 1.fsimage檔案 hdfs檔案系統元資料的乙個永久性的檢查點,其中包含hdfs檔案系統的所有目錄和檔案idnode的序列化資訊 2.fsimage.md5檔案 是映象檔案的 md5...

QT中樹控制項QTreeView開發例項

本文講解了qt中樹控制項qtreeview開發例項,對於qtreeview沒有過多的講解,那麼不說廢話了,看 是如何實現的吧。方法一 使用qdirmodel進行目錄的現實,qdirmodel是qt中專為檔案目錄樹型顯示所提供的一種model。具體使用如下 1 int main int argc,ch...