2019年12月03日

ビットマップペイントツールのチュートリアルをやってみた その268 3dsmax 2019

引き続きMAXScriptマニュアルに載っている「チュートリアル-ビットマップペイントツールを9つの簡単なステップで作成する」 の続きを考えて見たい。

今回もPyside2について調べてみた。

「QListWidget」はリストを扱うウィジェットで「QListView」クラスを継承している。

ファンクション、スロット、シグナルは以下の通りだ。

Functions
 def addItem (item)
 def addItem (label)
 def addItems (labels)
 def closePersistentEditor (item)
 def count ()
 def currentItem ()
 def currentRow ()
 def editItem (item)
 def findItems (text, flags)
 def indexFromItem (item)
 def indexFromItem (item)
 def insertItem (row, item)
 def insertItem (row, label)
 def insertItems (row, labels)
 def isItemHidden (item)
 def isItemSelected (item)
 def isPersistentEditorOpen (item)
 def isSortingEnabled ()
 def item (row)
 def itemAt (p)
 def itemAt (x, y)
 def itemFromIndex (index)
 def itemWidget (item)
 def items (data)
 def openPersistentEditor (item)
 def removeItemWidget (item)
 def row (item)
 def selectedItems ()
 def setCurrentItem (item)
 def setCurrentItem (item, command)
 def setCurrentRow (row)
 def setCurrentRow (row, command)
 def setItemHidden (item, hide)
 def setItemSelected (item, select)
 def setItemWidget (item, widget)
 def setSortingEnabled (enable)
 def sortItems ([order=Qt.AscendingOrder])
 def takeItem (row)
 def visualItemRect (item)

Virtual functions
 def dropMimeData (index, data, action)
 def mimeData (items)
 def mimeTypes ()
 def supportedDropActions ()

Slots
 def clear ()
 def scrollToItem (item[, hint=EnsureVisible])

Signals
 def currentItemChanged (current, previous)
 def currentRowChanged (currentRow)
 def currentTextChanged (currentText)
 def itemActivated (item)
 def itemChanged (item)
 def itemClicked (item)
 def itemDoubleClicked (item)
 def itemEntered (item)
 def itemPressed (item)
 def itemSelectionChanged ()

リストには「addItem()」ファンクションで簡単にアイテムを追加出来る。

下のプログラムは「QLineEdit」で入力した文字列を「QPushButton」を押すことでリストに追加するプログラムだ。

from PySide2 import QtWidgets
import MaxPlus

class MyDialog(QtWidgets.QDialog):
  def __init__(self, parent=None):
    super(MyDialog, self).__init__(parent)
    main_layout = QtWidgets.QVBoxLayout()
    sub_layout = QtWidgets.QHBoxLayout()
    self.mylist = QtWidgets.QListWidget()
    self.mylineedit =  QtWidgets.QLineEdit()
    mypushbutton =  QtWidgets.QPushButton("Add")
    mypushbutton.clicked.connect(self.addItem)
    main_layout.addWidget(self.mylist)
    sub_layout.addWidget(self.mylineedit)
    sub_layout.addWidget(mypushbutton)
    main_layout.addLayout(sub_layout)
    self.setLayout(main_layout)
    self.resize(220, 180)

  def addItem(self):
	self.mylist.addItem(self.mylineedit.text())

w = MyDialog(MaxPlus.GetQMaxMainWindow())
w.show()

これが実行結果。

fig 1

続きはまた次回。



take_z_ultima at 11:30│Comments(0)3ds Max | CG

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives