Sistemdeki dosyaları/klasörleri göstermek için bir QDirModel (veya QFileSystemModel) içeren basit bir QTreeView() nasıl yapılacağını biliyorum ama her birinin yanında bir onay kutusu eklemek istiyorum Böylece kullanıcı sistemindeki bazı klasörleri/dosyaları seçebilir. Açıkçası, hangi seçtiklerini seçmem gerekiyor. Herhangi bir ipucu? BöylePyQt4 Local Directory görünümü, klasörleri seçme seçeneği ile
temelde bir şey ... Aşağıda
bir dizin görünümü ancak onay kutusu kılan bir örnek kod verilmiştir.
from PyQt4 import QtGui
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
model = QtGui.QDirModel()
tree = QtGui.QTreeView()
tree.setModel(model)
tree.setAnimated(False)
tree.setIndentation(20)
tree.setSortingEnabled(True)
tree.setWindowTitle("Dir View")
tree.resize(640, 480)
tree.show()
sys.exit(app.exec_())
Bu sadece iyi çalışır ancak bir C tıkladığında bu yüzden ne zaman nasıl değiştirileceğini biliyor musunuz: sonra tüm alt kategoriler tıklanma ve tek bir alt kategori C tıkladım: bir nokta (yarım kontrol)? – Kiarash
@Kiarash 'setData' içindeki 'index' alt ve üst dizinlerini buna göre değiştirmelisiniz. Alt dizin almak için 'QModelIndex.child' kullanın. Üst dizin almak için 'QModelIndex.parent' kullanın. Verilen dizinin bir dizi çocuğunu elde etmek için 'QDirModel.rowCount' kullanmalısınız. Bkz. [This] (http://pyqt.sourceforge.net/Docs/PyQt4/qmodelindex.html) ve [this] (http://pyqt.sourceforge.net/Docs/PyQt4/qabstractitemmodel.html#rowCount) – user2155932
setData'da şunu ekledim: menzil için (self.rowCount (indeks)): self.setData (index.child (i, 0), value, role) AMA C: 'yi tıklarsa bu kadar yavaştır. Bunun nasıl çözüleceğine dair bir fikrin var mı? – Kiarash