Created
November 13, 2018 16:56
-
-
Save salvaom/a23c5c739ce5371f67eabae2507587ca to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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