main.cpp
来自「Linux窗口程序设计,Qt4精彩实例分析,以循序渐进的方式介绍Qt4开发及其实」· C++ 代码 · 共 71 行
CPP
71 行
#include <QtGui>#include "datedelegate.h"#include "combodelegate.h"#include "spindelegate.h"enum Job{Worker,Farmer,Docter,Lawyer,Armyman};int main( int argc, char **argv ){ QApplication app(argc, argv); QFont font("ZYSong18030",12); app.setFont(font); QTranslator translator; translator.load("delegate_zh"); app.installTranslator(&translator); 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("Name")); model.setHeaderData(1,Qt::Horizontal,QObject::tr("Birthday")); model.setHeaderData(2,Qt::Horizontal,QObject::tr("Job")); model.setHeaderData(3,Qt::Horizontal,QObject::tr("Income")); QFile file("./data.tab"); 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()); QStringList pieces = line.split(",", QString::SkipEmptyParts); model.setData(model.index(row, 0, QModelIndex()), pieces.value(0)); model.setData(model.index(row, 1, QModelIndex()), pieces.value(1)); model.setData(model.index(row, 2, QModelIndex()), pieces.value(2)); model.setData(model.index(row,3, QModelIndex()), pieces.value(3)); row++; } } while (!line.isEmpty()); file.close(); } tableView.setWindowTitle(QObject::tr("Delegate")); tableView.show(); return app.exec();}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?