⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 citymodel.cpp

📁 Qt4的一些例子
💻 CPP
字号:
#include <QtCore>#include "citymodel.h"CityModel::CityModel(QObject *parent)    : QAbstractTableModel(parent){}void CityModel::setCities(const QStringList &cityNames){    cities = cityNames;    distances.resize(cities.count() * (cities.count() - 1) / 2);    distances.fill(0);    reset();}int CityModel::rowCount(const QModelIndex & /* parent */) const{    return cities.count();}int CityModel::columnCount(const QModelIndex & /* parent */) const{    return cities.count();}QVariant CityModel::data(const QModelIndex &index, int role) const{    if (!index.isValid())        return QVariant();    if (role == Qt::TextAlignmentRole) {        return int(Qt::AlignRight | Qt::AlignVCenter);    } else if (role == Qt::DisplayRole) {        if (index.row() == index.column())            return 0;        int offset = offsetOf(index.row(), index.column());        return distances[offset];    }    return QVariant();}bool CityModel::setData(const QModelIndex &index,                        const QVariant &value, int role){    if (index.isValid() && index.row() != index.column()            && role == Qt::EditRole) {        int offset = offsetOf(index.row(), index.column());        distances[offset] = value.toInt();        QModelIndex transposedIndex = createIndex(index.column(),                                                  index.row());        emit dataChanged(index, index);        emit dataChanged(transposedIndex, transposedIndex);        return true;    }    return false;}QVariant CityModel::headerData(int section,                               Qt::Orientation /* orientation */,                               int role) const{    if (role == Qt::DisplayRole)        return cities[section];    return QVariant();}Qt::ItemFlags CityModel::flags(const QModelIndex &index) const{    Qt::ItemFlags flags = QAbstractItemModel::flags(index);    if (index.row() != index.column())        flags |= Qt::ItemIsEditable;    return flags;}int CityModel::offsetOf(int row, int column) const{    if (row < column)        qSwap(row, column);    return (row * (row - 1) / 2) + column;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -