vs+qt----listView、treeView、TableView的使用

1、UI设计。

vs+qt----listView、treeView、TableView的使用_第1张图片

 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<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、运行结果

 

你可能感兴趣的:(qt,ui,开发语言)