Skip to content

Instantly share code, notes, and snippets.

@salvaom
Created November 13, 2018 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save salvaom/a23c5c739ce5371f67eabae2507587ca to your computer and use it in GitHub Desktop.
Save salvaom/a23c5c739ce5371f67eabae2507587ca to your computer and use it in GitHub Desktop.
import hou
from hutil.Qt import QtCore, QtGui, QtWidgets
class DDTest(QtWidgets.QFrame):
def __init__(self, parent=None):
super(DDTest, self).__init__(parent)
self.setWindowFlags(QtCore.Qt.Window)
self.myList = QtWidgets.QListView(self)
self.myModel = QtGui.QStandardItemModel(self.myList)
self.myList.setModel(self.myModel)
self.mySlider = QtWidgets.QSlider(QtCore.Qt.Horizontal, self)
self.mySlider.setRange(1, 100)
self.mySlider.setSliderPosition(20)
self.mySlider.valueChanged.connect(self.sliderChange)
list_label = QtWidgets.QLabel("Selected nodes (drag and drop to add):")
slider_label = QtWidgets.QLabel("Uniform scale:")
horiz_layout = QtWidgets.QHBoxLayout()
horiz_layout.addWidget(slider_label)
horiz_layout.addWidget(self.mySlider)
layout = QtWidgets.QVBoxLayout()
layout.addWidget(list_label)
layout.addWidget(self.myList)
layout.addLayout(horiz_layout)
self.setLayout(layout)
self.setAcceptDrops(True)
def dragEnterEvent(self, event):
event.acceptProposedAction()
def dropEvent(self, event):
str = event.mimeData().text()
index = str.find(",")
while index > 0:
item = QtGui.QStandardItem()
item.setText(str[0:index])
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Checked)
self.myModel.appendRow(item)
str = str[index + 1:]
index = str.find(",")
item = QtGui.QStandardItem()
item.setText(str)
item.setCheckable(True)
item.setCheckState(QtCore.Qt.Checked)
self.myModel.appendRow(item)
event.acceptProposedAction()
def sliderChange(self, value):
scale = float(value) / 20
for i in range(0, self.myModel.rowCount()):
item = self.myModel.item(i)
if item.checkState() is QtCore.Qt.Checked:
node = hou.node(item.text())
if node is not None:
node.setParms({"scale": scale})
win = DDTest(parent=hou.qt.mainWindow())
win.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment