1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
from PyQt4 import QtGui
import TrackWidget
class Model(QtGui.QWidget):
"""
This class creates Model Tab of KicadtoNgspice window.
The widgets are created dynamically in the Model Tab.
"""
def __init__(self,schematicInfo,modelList):
QtGui.QWidget.__init__(self)
#Creating track widget object
self.obj_trac = TrackWidget.TrackWidget()
#for increasing row and counting/tracking line edit widget
self.nextrow = 0
self.nextcount = 0
#for storing line edit details position details
self.start = 0
self.end = 0
#Creating GUI dynamically for Model tab
self.grid = QtGui.QGridLayout()
self.setLayout(self.grid)
for line in modelList:
#print "ModelList Item:",line
#Adding title label for model
#Key: Tag name,Value:Entry widget number
tag_dict = {}
modelbox=QtGui.QGroupBox()
modelgrid=QtGui.QGridLayout()
modelbox.setTitle(line[5])
self.start=self.nextcount
#line[7] is parameter dictionary holding parameter tags.
for key,value in line[7].iteritems():
#print "Key : ",key
#print "Value : ",value
#Check if value is iterable
if hasattr(value, '__iter__'):
#For tag having vector value
temp_tag = []
for item in value:
paramLabel = QtGui.QLabel(item)
modelgrid.addWidget(paramLabel,self.nextrow,0)
self.obj_trac.model_entry_var[self.nextcount]= QtGui.QLineEdit()
modelgrid.addWidget(self.obj_trac.model_entry_var[self.nextcount],self.nextrow,1)
temp_tag.append(self.nextcount)
self.nextcount = self.nextcount+1
self.nextrow = self.nextrow+1
tag_dict[key] = temp_tag
else:
paramLabel = QtGui.QLabel(value)
modelgrid.addWidget(paramLabel,self.nextrow,0)
self.obj_trac.model_entry_var[self.nextcount]= QtGui.QLineEdit()
modelgrid.addWidget(self.obj_trac.model_entry_var[self.nextcount],self.nextrow,1)
tag_dict[key] = self.nextcount
self.nextcount = self.nextcount+1
self.nextrow = self.nextrow+1
self.end= self.nextcount-1
print "End",self.end
modelbox.setLayout(modelgrid)
#CSS
modelbox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
self.grid.addWidget(modelbox)
'''
Listing all
line[0] = index
line[1] = compLine
line[2] = modelname #Change from compType to modelname
line[3] = compName
line[4] = comment
line[5] = title
line[6] = type i.e analog or digital
Now adding start,end and tag_dict which will be line[7],line[8] and line[9] respectively
'''
#This keeps the track of Model Tab Widget
self.obj_trac.modelTrack.append([line[0],line[1],line[2],line[3],line[4],line[5],line[6],self.start,self.end,tag_dict])
print "The tag dictionary : ",tag_dict
self.show()
|