Şimdi Ara

PySide QtreeWidget Problemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
332
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar. Bu güzel forum sayfasını açtığınız için teşekkür ederim.

    Öncelikle ben Nuke Programı için basit bir script yazdım. Herşey gayet güzel çalışıyor fakat bir noktada takıldım.

    Bir adet PySide ile TreeWidget yerleştirdim. Program içerisinde seçtiğim objeleri listelemesi için. Listeleme işlemi başarılı fakat sadece 1. Column'a listeliyor. 2. Column'a herhangi bir şey yazdıramıyorum.

    (imajı linkten veriyorum)https://ibb.co/exkQJw

    İmaj'da da gördüğünüz gibi Label Column'u boş. Acaba nerede hata yapıyorum diye düşünüyorum:

    Tam satırlar burada:


    import os, sys
    from PySide.QtGui import *
    from PySide.QtCore import *
    import nuke

    class f_modifier(QWidget):
    def __init__(self):
    super(f_modifier, self).__init__()
    self.f_modifierUI()

    def f_modifierUI(self):
    def list_selected_nodes():
    self.nodeList.clear()
    for sn in nuke.selectedNodes():
    nodes = sn["name"].value()
    self.nodeList.addItem(nodes)
    print nodes
    try:
    ifSelectedNodes = nuke.selectedNode()
    except:
    nuke.message("Please Select a Node(s)")


    # def listAllNodes():
    # an = nuke.allNodes()
    # for san in an:
    # sNodes = [san["name"].value()]
    # nodeTreeItem = QTreeWidgetItem()
    # nodeTreeItem.setText(0, sNodes)


    self.nodeTree = QTreeWidget()
    self.nodeTree.setSelectionMode(QAbstractItemView.MultiSelection)
    self.nodeTree.setSortingEnabled(1)

    self.nodeTree.headerItem().setText(0, "Name")
    self.nodeTree.headerItem().setText(1, "Label")
    self.nodeTree.headerItem().setText(2, "Status")

    def listAllNodes():
    self.nodeTree.clear()
    listNodeName = []
    selNodes = nuke.allNodes()
    for san in selNodes:
    sNodes = [san["name"].value()]
    QTreeWidgetItem(self.nodeTree, sNodes)
    listNodeName.append(san)

    # def listAllNodes():
    # self.nodeList.clear()
    # an = nuke.allNodes()
    # for san in an:
    # sNodes = san["name"].value()
    # self.nodeList.addItem(sNodes)
    # print sNodes

    self.saperator = QFrame()
    self.saperator.setFrameStyle(QFrame.HLine)

    self.saperator2 = QFrame()
    self.saperator2.setFrameStyle(QFrame.HLine)

    self.nodes = QPushButton()
    self.nodes.setText("List Node(s)")
    self.nodes.clicked.connect(list_selected_nodes)


    self.nodesAll = QPushButton()
    self.nodesAll.setText("List All Nodes")
    self.nodesAll.clicked.connect(listAllNodes)

    self.Line = QLineEdit()
    self.Line.setText("1")
    self.Line.setFixedWidth(40)


    self.mixLabel = QLabel()
    self.mixLabel.setText("Mix Value:")

    self.ok = QLabel()
    self.ok.setText("->")


    self.setLabelSelected = QLineEdit()
    self.setLabelSelected.setPlaceholderText("You can input 'Label' selected node(s) at sametime!")


    def setMixValue():
    selectedNodes = nuke.selectedNodes()
    for i in selectedNodes:
    i["mix"].setValue(float(self.Line.text()))
    i["label"].setValue(str("mix = [value mix]"))

    def setLabelValue():
    for n in nuke.selectedNodes():
    n["label"].setValue(str(self.setLabelSelected.text()))

    def diEnNode(state):
    if state == Qt.Checked:
    for d in nuke.selectedNodes():
    d["disable"].setValue(1)
    self.AktivPasivCh.setStyleSheet("background-color: orange")
    else:
    for d in nuke.selectedNodes():
    d["disable"].setValue(0)

    def performanceOnDef():
    nuke.startPerformanceTimers()

    def performanceOffDef():
    nuke.stopPerformanceTimers()


    self.AktivPasivCh = QCheckBox()
    self.AktivPasivCh.setText("D/E")
    self.AktivPasivCh.stateChanged.connect(diEnNode)


    self.labelBtn = QPushButton()
    self.labelBtn.setText("Set Label")
    self.labelBtn.clicked.connect(setLabelValue)

    self.setMixValueBtn = QPushButton()
    self.setMixValueBtn.setText("Set")
    self.setMixValueBtn.clicked.connect(setMixValue)

    self.nodeList = QListWidget()
    self.nodeList.setAlternatingRowColors(True)


    self.perFormanceInfoText = QLabel()
    self.perFormanceInfoText.setText("Performance Timers: ")

    self.performanceOn = QPushButton()
    self.performanceOn.setText("Show")
    self.performanceOn.clicked.connect(performanceOnDef)

    self.performanceOff = QPushButton()
    self.performanceOff.setText("Hide")
    self.performanceOff.clicked.connect(performanceOffDef)


    self.counterLabel = QLabel()
    self.counterLabel.setText("Node Count: ")


    self.masterLayout = QVBoxLayout()
    self.listButtonLay = QHBoxLayout()
    self.setAttrLayout = QHBoxLayout()
    self.labelLayout = QHBoxLayout()
    self.performanceLayout = QHBoxLayout()

    self.listButtonLay.addWidget(self.nodes)
    self.listButtonLay.addWidget(self.nodesAll)



    self.masterLayout.addLayout(self.listButtonLay)

    self.performanceLayout.addWidget(self.perFormanceInfoText)
    self.performanceLayout.addWidget(self.performanceOn)
    self.performanceLayout.addWidget(self.performanceOff)




    self.masterLayout.addWidget(self.nodeTree)
    # self.masterLayout.addWidget(self.nodeList)
    self.masterLayout.addWidget(self.counterLabel)
    self.masterLayout.addWidget(self.saperator)
    self.masterLayout.addLayout(self.setAttrLayout)

    self.masterLayout.addLayout(self.labelLayout)
    self.setAttrLayout.addWidget(self.mixLabel)
    self.setAttrLayout.addWidget(self.Line)
    self.setAttrLayout.addWidget(self.ok)
    self.setAttrLayout.addWidget(self.setMixValueBtn)
    self.setAttrLayout.addWidget(self.AktivPasivCh)
    self.labelLayout.addWidget(self.setLabelSelected)
    self.labelLayout.addWidget(self.labelBtn)


    self.masterLayout.addLayout(self.performanceLayout)






    self.setLayout(self.masterLayout)


    def start():
    start.ui = f_modifier()
    start.ui.setWindowFlags(Qt.WindowStaysOnTopHint)
    start.ui.setWindowTitle("F: Modifier")
    start.ui.show()



    sadece treeWidget işlem satırı ise aşağıdaki gibi:

    self.nodeTree = QTreeWidget()
    self.nodeTree.setSelectionMode(QAbstractItemView.MultiSelection)
    self.nodeTree.setSortingEnabled(1)

    self.nodeTree.headerItem().setText(0, "Name")
    self.nodeTree.headerItem().setText(1, "Label")
    self.nodeTree.headerItem().setText(2, "Status")

    def listAllNodes():
    self.nodeTree.clear()
    listNodeName = []
    selNodes = nuke.allNodes()
    for san in selNodes:
    sNodes = [san["name"].value()]
    QTreeWidgetItem(self.nodeTree, sNodes)
    listNodeName.append(san)







  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.