QFileSysytemModel光标

#include "modelwidget.h" ModelWidget::ModelWidget(QWidget *parent) : QWidget(parent) { int width=qApp->desktop()->geometry().width(); int height=qApp->desktop()->geometry().height(); this->setGeometry(0,0,width,height); rootDiretory="/"; layout = new QVBoxLayout(this); model = new QFileSystemModel(this); model->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); lv = new QListView; layout->addWidget(lv); lv->setModel(model); lv->setRootIndex(model->setRootPath(rootDiretory)); lv->setFocus(); QFont font=this->font(); font.setPixelSize(30); lv->setFont(font); connect(lv,SIGNAL(activated (const QModelIndex &)),this,SLOT(ItemClicked(const QModelIndex &))); connect(model,SIGNAL(directoryLoaded(const QString)),this,SLOT(Initlistview(QString))); qDebug()<<"enter ModelWidget"; //this->setFocus(); } ModelWidget::~ModelWidget() { } void ModelWidget::keyPressEvent(QKeyEvent * event) { switch (event->key() ) { case Qt::Key_Right: { qDebug()<<"Move To Right"; event->accept(); break; } case Qt::Key_Left: { qDebug()<<"Move To Left"; event->accept(); break; } case Qt::Key_Escape: { qDebug()<<"Key_Escape"; currentRootPath=model->filePath(lv->rootIndex()); lv->setRootIndex(model->setRootPath(currentRootPath).parent()); } default: QWidget::keyPressEvent(event); break; } } void ModelWidget::ItemClicked(const QModelIndex &index) { if(!index.isValid()) { qDebug()<<"index is not valid !"; return; } QString currentpath=model->filePath(index); lv->setRootIndex(model->setRootPath(currentpath)); qDebug()<<lv->selectionModel()->selectedIndexes(); } void ModelWidget::Initlistview(QString path) { QModelIndex index = model->index(0,0,lv->rootIndex()); qDebug()<<index; lv->scrollTo(index); lv->setCurrentIndex(index); //lv->selectionModel()->setCurrentIndex(index, QItemSelectionModel::Current); }  

你可能感兴趣的:(QFileSysytemModel光标)