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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值