def _update_combobox(self): """Updates the widget's lights and cameras comboboxes.""" all_cameras = Method.get_scene_cameras() all_lights = Method.get_scene_lights() for widget in self._get_sol_widgets(): widget.update_cameras_combobox(all_cameras) widget.update_lights_combobox(all_lights)
def update_cameras_combobox(self, cameras=(), clear=True): """ Refreshes the cameras combobox with nodes from the current scene. :param cameras: list. Optionnal. :param clear: bool. Default True. Whether to clear the list. """ # Block comboboxes signals and get scene cameras self.ui_cbb_cam.blockSignals(True) cameras = [''] + (cameras or Method.get_scene_cameras()) # Refill the list if necessary if clear: self.ui_cbb_cam.clear() self.ui_cbb_cam.addItems(cameras) # Combo boxes selections c_id = cameras.index(self.node_camera) if self.node_camera else 0 self.ui_cbb_cam.setCurrentIndex(c_id) # Re-enable signals self.ui_cbb_cam.blockSignals(False)
def _new_init(self): def _set_node(widget): try: widget.setText(cmds.ls(sl=True)[0]) except IndexError: pass main_layout = QtGui.QGridLayout(self) self.setWindowTitle('Sol') # UI self.ui_lbl_01 = QtGui.QLabel('Sol Handle Name') self.ui_led_01 = QtGui.QLineEdit('SolHandle1') self.ui_lbl_02 = QtGui.QLabel('Sol Handle Camera') self.ui_led_02 = QtGui.QLineEdit('') self.ui_btn_02 = QtGui.QPushButton('Get') self.ui_lbl_03 = QtGui.QLabel('Sol Handle Light') self.ui_led_03 = QtGui.QLineEdit('') self.ui_btn_03 = QtGui.QPushButton('Get') self.ui_lbl_04 = QtGui.QLabel('Geometry') self.ui_led_04 = QtGui.QLineEdit('') self.ui_btn_04 = QtGui.QPushButton('Get') self.ui_btn_10 = QtGui.QPushButton('Create') # Auto-fill cams = Method.get_scene_cameras() lights = Method.get_scene_lights() if cams: self.ui_led_02.setText(cams[0]) if lights: self.ui_led_03.setText(lights[0]) # Slots self.ui_btn_02.clicked.connect(lambda: _set_node(self.ui_led_02)) self.ui_btn_03.clicked.connect(lambda: _set_node(self.ui_led_03)) self.ui_btn_04.clicked.connect(lambda: _set_node(self.ui_led_04)) self.ui_btn_10.clicked.connect(self._new_complete) # Sizes and layout self.ui_led_01.setFixedWidth(220) self.ui_led_02.setFixedWidth(220) self.ui_led_03.setFixedWidth(220) self.ui_led_04.setFixedWidth(220) self.ui_btn_02.setFixedWidth(40) self.ui_btn_03.setFixedWidth(40) self.ui_btn_04.setFixedWidth(40) main_layout.addWidget(self.ui_lbl_01, 0, 0, 1, 1) main_layout.addWidget(self.ui_led_01, 0, 1, 1, 1) main_layout.addWidget(self.ui_lbl_02, 1, 0, 1, 1) main_layout.addWidget(self.ui_led_02, 1, 1, 1, 1) main_layout.addWidget(self.ui_btn_02, 1, 2, 1, 1) main_layout.addWidget(self.ui_lbl_03, 2, 0, 1, 1) main_layout.addWidget(self.ui_led_03, 2, 1, 1, 1) main_layout.addWidget(self.ui_btn_03, 2, 2, 1, 1) main_layout.addWidget(self.ui_lbl_04, 3, 0, 1, 1) main_layout.addWidget(self.ui_led_04, 3, 1, 1, 1) main_layout.addWidget(self.ui_btn_04, 3, 2, 1, 1) main_layout.addWidget(QtGui.QLabel(''), 4, 1, 1, 1) main_layout.addWidget(self.ui_btn_10, 5, 1, 1, 1) self.show()