【Qt5开发及实例】25、实现代理的功能

本文介绍如何在Qt5中利用代理实现界面功能,包括dateDelegate、comboBoxDelegate和spinDelegate的详细代码实现,结合图形显示,探讨Qt的MVC模式。
摘要由CSDN通过智能技术生成

实现代理的功能

在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);
              //接下来依次插入数据
            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值