Skip to content

Commit 811518d

Browse files
committed
node widget docs setup
1 parent 54b7067 commit 811518d

File tree

4 files changed

+146
-9
lines changed

4 files changed

+146
-9
lines changed

NodeGraphQt/base/node.py

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
from NodeGraphQt.errors import PortRegistrationError
1212
from NodeGraphQt.qgraphics.node_backdrop import BackdropNodeItem
1313
from NodeGraphQt.qgraphics.node_base import NodeItem
14-
from NodeGraphQt.widgets.node_property import (NodeComboBox,
15-
NodeLineEdit,
16-
NodeCheckBox)
14+
from NodeGraphQt.widgets.node_widgets import (NodeComboBox,
15+
NodeLineEdit,
16+
NodeCheckBox)
1717

1818

1919
class classproperty(object):
@@ -453,7 +453,36 @@ def icon(self):
453453
"""
454454
return self.model.icon
455455

456-
def add_combo_menu(self, name='', label='', items=None, tab=None):
456+
def widgets(self):
457+
"""
458+
Returns all embedded widgets from this node.
459+
460+
See Also:
461+
:meth:`BaseNode.get_widget`,
462+
463+
Returns:
464+
dict: embedded node widgets. {``property_name``: ``node_widget``}
465+
"""
466+
return self.view.widgets
467+
468+
def get_widget(self, name):
469+
"""
470+
Returns the embedded widget associated with the property name.
471+
472+
See Also:
473+
:meth:`BaseNode.add_combo_menu`,
474+
:meth:`BaseNode.add_text_input`,
475+
:meth:`BaseNode.add_checkbox`,
476+
477+
Args:
478+
name (str): node property name.
479+
480+
Returns:
481+
NodeBaseWidget: embedded node widget.
482+
"""
483+
return self.view.widgets.get(name)
484+
485+
def add_combo_menu(self, name, label='', items=None, tab=None):
457486
"""
458487
Creates a custom property with the :meth:`NodeObject.create_property`
459488
function and embeds a :class:`PySide2.QtWidgets.QComboBox` widget
@@ -477,7 +506,7 @@ def add_combo_menu(self, name='', label='', items=None, tab=None):
477506
widget.value_changed.connect(lambda k, v: self.set_property(k, v))
478507
self.view.add_widget(widget)
479508

480-
def add_text_input(self, name='', label='', text='', tab=None):
509+
def add_text_input(self, name, label='', text='', tab=None):
481510
"""
482511
Creates a custom property with the :meth:`NodeObject.create_property`
483512
function and embeds a :class:`PySide2.QtWidgets.QLineEdit` widget
@@ -499,7 +528,7 @@ def add_text_input(self, name='', label='', text='', tab=None):
499528
widget.value_changed.connect(lambda k, v: self.set_property(k, v))
500529
self.view.add_widget(widget)
501530

502-
def add_checkbox(self, name='', label='', text='', state=False, tab=None):
531+
def add_checkbox(self, name, label='', text='', state=False, tab=None):
503532
"""
504533
Creates a custom property with the :meth:`NodeObject.create_property`
505534
function and embeds a :class:`PySide2.QtWidgets.QCheckBox` widget

NodeGraphQt/widgets/node_property.py renamed to NodeGraphQt/widgets/node_widgets.py

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ class NodeBaseWidget(QtWidgets.QGraphicsProxyWidget):
3232
"""
3333

3434
value_changed = QtCore.Signal(str, object)
35+
"""
36+
Signal triggered when the ``value`` attribute has changed.
37+
38+
:parameters: str, object
39+
:emits: property name, propety value
40+
"""
3541

3642
def __init__(self, parent=None, name='widget', label=''):
3743
super(NodeBaseWidget, self).__init__(parent)
@@ -49,40 +55,89 @@ def setToolTip(self, tooltip):
4955

5056
@property
5157
def widget(self):
58+
"""
59+
Returns the embedded QWidget used in the node.
60+
61+
Returns:
62+
QtWidgets.QWidget: nested QWidget
63+
"""
5264
raise NotImplementedError
5365

5466
@property
5567
def value(self):
68+
"""
69+
Returns the widgets current value.
70+
71+
Returns:
72+
str: current property value.
73+
"""
5674
raise NotImplementedError
5775

5876
@value.setter
5977
def value(self, text):
78+
"""
79+
Sets the widgets current value.
80+
81+
Args:
82+
text (str): new text value.
83+
"""
6084
raise NotImplementedError
6185

6286
@property
6387
def label(self):
88+
"""
89+
Returns the label text displayed above the embedded node widget.
90+
91+
Returns:
92+
str: label text.
93+
"""
6494
return self._label
6595

6696
@label.setter
6797
def label(self, label):
98+
"""
99+
Sets the label text above the embedded widget.
100+
101+
Args:
102+
label (str): new label ext.
103+
"""
68104
self._label = label
69105

70106
@property
71107
def type_(self):
108+
"""
109+
Returns the node widget type.
110+
111+
Returns:
112+
str: widget type.
113+
"""
72114
return str(self.__class__.__name__)
73115

74116
@property
75117
def node(self):
118+
"""
119+
Returns the parent node object.
120+
121+
Returns:
122+
NodeGraphQt.BaseNode: parent node.
123+
"""
76124
self.parentItem()
77125

78126
@property
79127
def name(self):
128+
"""
129+
Returns the parent node property name.
130+
131+
Returns:
132+
str: property name.
133+
"""
80134
return self._name
81135

82136

83137
class NodeComboBox(NodeBaseWidget):
84138
"""
85-
ComboBox Node Widget.
139+
ComboBox Node Widget inherits from:
140+
:class:`NodeGraphQt.widgets.node_widgets.NodeBaseWidget`
86141
"""
87142

88143
def __init__(self, parent=None, name='', label='', items=None):
@@ -111,6 +166,12 @@ def widget(self):
111166

112167
@property
113168
def value(self):
169+
"""
170+
Returns the QComboBox current text.
171+
172+
Returns:
173+
str: current property value.
174+
"""
114175
return str(self._combo.currentText())
115176

116177
@value.setter
@@ -140,7 +201,8 @@ def clear(self):
140201

141202
class NodeLineEdit(NodeBaseWidget):
142203
"""
143-
LineEdit Node Widget.
204+
LineEdit Node Widget inherits from:
205+
:class:`NodeGraphQt.widgets.node_widgets.NodeBaseWidget`
144206
"""
145207

146208
def __init__(self, parent=None, name='', label='', text=''):
@@ -166,6 +228,12 @@ def widget(self):
166228

167229
@property
168230
def value(self):
231+
"""
232+
Returns the QLineEdit current text.
233+
234+
Returns:
235+
str: current property value.
236+
"""
169237
return str(self._ledit.text())
170238

171239
@value.setter
@@ -177,7 +245,8 @@ def value(self, text=''):
177245

178246
class NodeCheckBox(NodeBaseWidget):
179247
"""
180-
CheckBox Node Widget.
248+
CheckBox Node Widget inherits from:
249+
:class:`NodeGraphQt.widgets.node_widgets.NodeBaseWidget`
181250
"""
182251

183252
def __init__(self, parent=None, name='', label='', text='', state=False):
@@ -206,6 +275,12 @@ def widget(self):
206275

207276
@property
208277
def value(self):
278+
"""
279+
Returns the QCheckBox checked state.
280+
281+
Returns:
282+
bool: current property value.
283+
"""
209284
return self._cbox.isChecked()
210285

211286
@value.setter

docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ GitHub Project: https://github.com/jchanvfx/NodeGraphQt
2020
nodes
2121
menu
2222
widgets
23+
node_widgets
2324

2425
.. toctree::
2526
:caption: Module Examples

docs/node_widgets.rst

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
Node Widgets
2+
############
3+
4+
Node widgets are widgets that are embedded in the :class:`NodeGraphQt.BaseNode` class.
5+
6+
NodeBaseWidget
7+
**************
8+
9+
.. autoclass:: NodeGraphQt.widgets.node_widgets.NodeBaseWidget
10+
:members:
11+
:exclude-members: setToolTip, widget, value
12+
13+
NodeComboBox
14+
************
15+
16+
.. autoclass:: NodeGraphQt.widgets.node_widgets.NodeComboBox
17+
:members:
18+
:exclude-members: widget, type_
19+
20+
NodeLineEdit
21+
************
22+
23+
.. autoclass:: NodeGraphQt.widgets.node_widgets.NodeLineEdit
24+
:members:
25+
:exclude-members: widget, type_
26+
27+
NodeCheckBox
28+
************
29+
30+
.. autoclass:: NodeGraphQt.widgets.node_widgets.NodeCheckBox
31+
:members:
32+
:exclude-members: widget, type_

0 commit comments

Comments
 (0)