QT 读取csv文件-QT根据显示器大小设置窗口大小-QT绑定信号与槽

这篇博客介绍了如何使用QT进行CSV文件的读取操作,通过QFile和QTextStream实现文本流模式读取,并展示了如何处理逗号分隔的数据。同时,文章还讲解了如何根据显示器大小设置窗口尺寸,利用QScreen获取屏幕几何信息,并使用setGeometry函数调整窗口大小。此外,还讨论了QT中信号与槽的绑定方法,提供了连接信号和槽的示例代码。
摘要由CSDN通过智能技术生成

QT 读取csv文件

废话不多说先上代码,

需要引入的头文件:

函数是自己写的一个小项目截取的一段,基本上思路就是这个.读取csv格式的和读取txt文件类似.

#include <QFile>
#include <QMessageBox>
#include <QDateTime>

void InputData::ReadInputData(QString strPath)
{
    QVector<QStringList> _studentData;
	QFile file(strPath);    //打开文件
	if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
	{
        //弹警告窗
		QMessageBox::warning(NULL, "warning", "open file fail!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
	}
	// 文本流模式读取文件
	QTextStream in(&file);
	while (!in.atEnd())
	{
        //读取csv文件的一行
		QString strline = in.readLine();
		if (strline.isEmpty())
		{
			continue;
		}
        //文件 用逗号隔开并保存到文件中 QStringList这个其实就是list Qstring
		QStringList _lst = strline.split(",");
		_studentData.append(_lst);
	}
}

QT根据显示器大小设置窗口大小

	QRect screenRect = QGuiApplication::primaryScreen()->geometry();
	windowWidth = screenRect.width();
	windowHeight = screenRect.height();
	this->setGeometry(0, 0, windowWidth, windowHeight);

需要的头文件

#include <QScreen>
this->setGeometry(0, 0, windowWidth, windowHeight);这个函数就是设置显示大小的,四个参数是设置对角线坐标的.

QT绑定信号与槽

	connect(this, &MainWindow::InputDataFunc, pInputData.get(), &InputData::ImplementInputData);
	connect(pInputData.get(), &InputData::UpdateCombox, this, &MainWindow::UpdataComBox);
	connect(ui->nameComBox, &QComboBox::currentIndexChanged, this, &MainWindow::on_comboBox_currentIndexChanged);

信号与槽绑定的格式:

connect(实例类的指针,&类名::信号函数,实例类的指针,&类名::信号函数);

一般信号与槽函数绑定最好是软件初始化的时候就绑定.

以一个绑定为例:

connect(this, &MainWindow::InputDataFunc, pInputData.get(), &InputData::ImplementInputData);

this是connect在MainWindow类中定义的所以使用this指针,pInputData.get()这个是因为我使用的是C++11的智能指针

std::shared_ptr<InputData> pInputData = std::make_shared<InputData>();

所以pInputData.get()去原始指针.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值