QT 读取文件写入Qtablewidget中
我写了一个类,classHeatUser{private:charName[30];floatFlow;floatDistance;shortTime;};txt文件中每...
我写了一个类,
class HeatUser
{
private:
char Name[30];
float Flow;
float Distance;
short Time;
};
txt文件中每一行是一个类的对象,有几十行。怎样从txt文件读取数据并且初始化类的对象。
同时这些对象写入Qtablewidget表格中。界面上有个按钮,点击按钮刷新表格中处理后类对象的数据。 展开
class HeatUser
{
private:
char Name[30];
float Flow;
float Distance;
short Time;
};
txt文件中每一行是一个类的对象,有几十行。怎样从txt文件读取数据并且初始化类的对象。
同时这些对象写入Qtablewidget表格中。界面上有个按钮,点击按钮刷新表格中处理后类对象的数据。 展开
1个回答
展开全部
1、HeatUser类
class HeatUser
{
public:
HeatUser(){
}
HeatUser(QString name, float flow, float distance, short time){
strcpy(Name, name.toLocal8Bit().data());
Flow = flow;
Distance = distance;
Time = time;
}
~HeatUser(){
}
QString getName(){
return Name;
}
QString getFlow(){
return QString("%1").arg(Flow);
}
QString getDistance(){
return QString("%1").arg(Distance);
}
QString getTime(){
return QString("%1").arg(Time);
}
private:
char Name[30];
float Flow;
float Distance;
short Time;
};
2、对象初始化
QFile file("aa.txt");
if(file.open(QIODevice::ReadOnly))
{
QTextStream stream(&file);
while(!stream.atEnd())
{
QStringList list = stream.readLine().split(QRegExp("\\s+"));
HeatUser hUser(list.at(0), static_cast<QString>(list.at(1)).toFloat(),
static_cast<QString>(list.at(2)).toFloat(),
static_cast<QString>(list.at(3)).toShort());
vec.push_back(hUser);
}
}
3、文件内容
aa 126.0 22.6 99
bb 165.0 23.6 100
4、写入Qtablewidget
ui->tableWidget->setRowCount(2); //设置行数为2
ui->tableWidget->setColumnCount(4); //设置列数为4
QStringList header;
header << "Name" << "Flow" << "Distance" << "Time";
ui->tableWidget->setHorizontalHeaderLabels(header);
for(int i = 0; i < vec.count(); i++)
{
ui->tableWidget->setItem(i,0,new QTableWidgetItem(vec[i].getName()));
ui->tableWidget->setItem(i,1,new QTableWidgetItem(vec[i].getFlow()));
ui->tableWidget->setItem(i,2,new QTableWidgetItem(vec[i].getDistance()));
ui->tableWidget->setItem(i,3,new QTableWidgetItem(vec[i].getTime()));
}
追问
请问tableWidget是在main函数里还是widget.cpp里,如果在widget.cpp里怎么访问vec[i]
追答
tableWidget 在 widget.cpp 里的界面上,vec[i] 也是 widget 里的成员
class Paint : public QMainWindow
{
Q_OBJECT
public:
explicit Paint(QWidget *parent = 0);
~Paint();
private:
Ui::Paint *ui;
QScrollArea *scrollarea;
PaintArea *area;
QVector<HeatUser> vec;
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |