[[FrontPage/Python/PySide]]

** QListViewの最速利用法 [#s22e7f8b]

 # :: FileListView
 self.model = QStringListModel()
 self.listView = QListView()
 self.listView.setModel(self.model)
  self.model.setStringList(["abc", "def", "ghi", "jkl"])
 self.listView.clicked.connect(self.flush_listitem)

    @Slot()
    def flush_listitem(self, index):
        sel1 = index.data(Qt.DisplayRole)
        sel2 = [i.data(Qt.DisplayRole) for i in self.listView.selectedIndexes()]
        print sel1
        print sel2

** Qt CSS Style一覧 [#r45ed1a1]
https://wiki.qt.io/Style-CSSBased

** QObject.sender() [#y76464fa]
シグナルの発行元オブジェクトを取得したい場合
https://wiki.qt.io/PySide-Pitfalls-Japanese

(注意) sender()は@Slotを実装してるメソッド内でのみ動く

 class Listener(QObject):
        @Slot()
        def on_signal(self,*args):
                print args
                print self.sender()
 listner = Listener()
 btn.someSignal.connect(listener.on_signal)

** QtCore.Property [#reed123c]
プロパティのセッターにより,値が変更されると,シグナルを発行できる.

 from PySide.QtCore import QObject, Property
 
 class MyObject(QObject):
        def __init__(self, startval=42):
                QObject.__init__(self)
                self.ppval = startval
        def readPP(self):
                return self.ppval
        def setPP(self,val):
                self.ppval = val
        pp = Property(int, readPP, setPP)
 
        obj = MyObject()
        obj.pp = 47

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS