实现代理的功能
在Qt里面也有MVC,那就是视图,模型,代理,后面我们再开一章,好好来学习一下Qt的MVC吧!
main.cpp
/**
* 书本:【Qt5开发及实例】
* 功能:实现代理的功能
* 文件:main.cpp
* 时间:2015年1月29日20:53:04
* 作者:cutter_point
*/
#include <QApplication>
#include <QStandardItemModel>
#include <QTableView>
//#include <QFileDialog>
#include <QFile>
#include <QTextStream>
#include "datedelegate.h"
#include "combodelegate.h"
#include "spindelegate.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStandardItemModel model(4, 4); //一个表格模型
QTableView tableView; //一个表的视图
tableView.setModel(&model); //把这个模型设置为这个视图的模型
//---------------------------------------------------------------------------------------------------------------
//设定代理
DateDelegate dateDelegate;
ComboDelegate comboDelegate;
spindelegate spinDelegate;
tableView.setItemDelegateForColumn(1, &dateDelegate); //第二列设定代理
tableView.setItemDelegateForColumn(2, &comboDelegate);
tableView.setItemDelegateForColumn(3, &spinDelegate);
model.setHeaderData(0, Qt::Horizontal, QObject::tr("名字")); //名字
model.setHeaderData(1,Qt::Horizontal,QObject::tr("生日"));
model.setHeaderData(2,Qt::Horizontal,QObject::tr("职业"));
model.setHeaderData(3,Qt::Horizontal,QObject::tr("收入")); //第一列
// QString path = QFileDialog::getOpenFileName(tableView, "Open", ".", "file(*.txt)");
QFile file("F:/QTcode/zhangjie8/CH803/test.txt");
// QFile file("../test.txt");
if(file.open(QFile::ReadOnly | QFile::Text)) //打开文件为只读和文本形式
{
QTextStream stream(&file);
QString line; //读取一行
model.removeRows(0, model.rowCount(QModelIndex()), QModelIndex()); //去除所有的数据清空
int row = 0;
do
{
line = stream.readLine(); //读取一行数据
if(!line.isEmpty())
{
model.insertRows(row, 1, QModelIndex()); //为当前这个索引插入一行,1个数据
QStringList pieces = line.split(",", QString::SkipEmptyParts);
//接下来依次插入数据