1、UI设计。
2、按钮对应的槽函数
(1)“打开文件”按钮的槽函数:
void Model_View::on_pushButton()
{
QFileDialog fileDialog;
QString path= fileDialog.getOpenFileName(this, QStringLiteral("打开文件"),"",tr("Text (*.txt)"));
QFileInfo fileinfo(path);
QFile file(path);
QTextStream stream(&file);
file.open(QIODevice::ReadOnly);//只读方式打开文件
QStringList qlist;
while (!stream.atEnd())
{
qlist<<stream.readLine();
}
qDebug() << qlist;
//QStringListModel *model(qlist);
QStringListModel *model = new QStringListModel;
model->setStringList(qlist);
//file.close();
ui.listView->setModel(model);
}
(2)“目录”按钮的槽函数:
void Model_View::on_pushButton_2()
{
qDebug() << "pushButton_2";
//QFileSystemModel model;
//qDebug() << QDir::rootPath();
//model.setRootPath(QDir::rootPath());
//model.setFilter(QDir::AllDirs | QDir::Files | QDir::Readable | QDir::NoDotAndDotDot);
QDirModel *model = new QDirModel;
ui.treeView->setRootIndex(model->index("C://"));
ui.treeView->setModel(model);
ui.treeView->allColumnsShowFocus();
}
(3)“表格”按钮的槽函数:
void Model_View::on_pushButton_3()
{
QFileDialog fileDialog;
QString path = fileDialog.getOpenFileName(this, QStringLiteral("打开文件"), "", tr("Text (*.txt)"));
QFile file(path);
QTextStream stream(&file);
file.open(QIODevice::ReadOnly);
QStringList a;
while (true)
{
QString line = stream.readLine();
if (line.isNull())
{
break;
}
QStringList parts = line.split(",");
a << parts;
}
QStandardItemModel *model = new QStandardItemModel;
model->setColumnCount(3);
int row = a.size() / 3;
model->setRowCount(row);
QStringList b;
b << a[0] << a[1] << a[2];
model->setHorizontalHeaderLabels(b);
for (int i = 1;i < row;i++)
{
for (int k = 0;k<3;k++)
{
int j = i * 3 + k;
QStandardItem *nn = new QStandardItem(a[j]);
model->setItem(i, k, nn);
}
}
ui.tableView->setModel(model);
}
3、运行结果