我在 python 中对 QAbstractListModel 有一点问题。我正在尝试创建自己的模型。问题是视图不显示我的值列表。
from PySide.QtCore import *
import PySide.QtCore
from PySide.QtGui import *
from PySide import QtCore, QtGui
import sys
class ModelPoc(QAbstractListModel):
m_items=[];
def __init__(self,parent = None):
QtCore.QAbstractListModel.__init__(self, parent)
def initialize (self,mlist):
self.m_items = mlist;
def rowCount(self, parent = QModelIndex()):
return len(self.m_items)
def setData(self, index, value, role = Qt.EditRole):
if role == Qt.EditRole:
self.m_items[ index.row() ] = str(value.toString());
self.dataChanged.emit(index, index);
return True
return False
def data(self, index, role = Qt.DisplayRole):
ret = "test";
if role == QtCore.Qt.DisplayRole:
ret= str( self.m_items[index.row()] );
print (ret);
return ret;
def flags(self, index):
return QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
class Main(QtGui.QMainWindow, ui_test.Ui_MainWindow):
m_pocModel = poc_model.ModelPoc();
def __init__(self,parent=None):
super(Main,self).__init__(parent);
self.ui = ui_test.Ui_MainWindow();
self.ui.setupUi(self);
self.ui.pushButton.clicked.connect(self.clickedMyButton);
self.init();
def init(self):
self.ui.listView.setModel(self.m_pocModel);
Main.m_pocModel.initialize(["test", "tes1t", "t3est", "t5est", "t3est"]);
self.ui.listView.show();
@Slot()
def clickedMyButton(self):
text = self.ui.lineEdit.text();
self.ui.label.setText( text );
app = QtGui.QApplication(sys.argv);
test = Main();
test.show();
sys.exit(app.exec_());
运行此脚本后,我在列表视图中看不到任何内容。