#include <QtSql>
#include <QTextCharFormat>
#include <QtDebug>
#include <QCheckBox>
#include "includes/selectionsetmodel.h"
{
}
//! [0]
{
int col = index.column();
switch(role){
case Qt::DisplayRole:
if (col == 6)
{
if (value.toInt()<1024)
{
}
else
{
}
}
else
{
}
case Qt::FontRole:
// QFont boldFont;
// boldFont.setBold(true);
// return boldFont;
case Qt::BackgroundRole:
case Qt::TextAlignmentRole:
if (col == 5 or col == 6)
{
return Qt::AlignRight + Qt::AlignVCenter;
}
if (col == 2)
{
return Qt::AlignVCenter;
}
case Qt::CheckStateRole:
int selected = index.model()->data(index.model()->index(index.row(), 1), Qt::DisplayRole).toInt();
if (col == 2 )
{
if(selected==1)
{
return Qt::Checked;
}
else
{
return Qt::Unchecked;
}
}
}
}
Qt
::ItemFlags selectionsetSqlModel
::flags ( const QModelIndex & index
) const{
if (index.column() == 2)
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable ;
else
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
bool selectionsetSqlModel::setData(const QModelIndex& index,const QVariant& value,int role)
{
bool v;
if(role == Qt::CheckStateRole && index.column() == 2)
{
bool selected = index.model()->data(index.model()->index(index.row(), 1), Qt::DisplayRole).toBool();
v = selected ? false : true;
}
//QModelIndex idx = QModelIndex(index.row(), 1, index);
//bool r = this->setData(idx,v,role);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
//qDebug() << "Now Checkable Column: " << r << " = " << v;
return true;
}
#include <QtSql>
#include <QTextCharFormat>
#include <QtDebug>
#include <QCheckBox>
#include "includes/selectionsetmodel.h"
selectionsetSqlModel::selectionsetSqlModel(QObject *parent) : QSqlTableModel(parent)
{
}
//! [0]
QVariant selectionsetSqlModel::data(const QModelIndex &index, int role) const
{
QVariant value = QSqlQueryModel::data(index, role);
int col = index.column();
switch(role){
case Qt::DisplayRole:
if (col == 6)
{
if (value.toInt()<1024)
{
return QString(QString::number(value.toInt()) + "B");
}
else
{
return QString(QString::number(value.toInt()/1024) + "KB");
}
}
else
{
return QString(value.toString());
}
case Qt::FontRole:
// QFont boldFont;
// boldFont.setBold(true);
// return boldFont;
case Qt::BackgroundRole:
case Qt::TextAlignmentRole:
if (col == 5 or col == 6)
{
return Qt::AlignRight + Qt::AlignVCenter;
}
if (col == 2)
{
return Qt::AlignVCenter;
}
case Qt::CheckStateRole:
int selected = index.model()->data(index.model()->index(index.row(), 1), Qt::DisplayRole).toInt();
if (col == 2 )
{
if(selected==1)
{
return Qt::Checked;
}
else
{
return Qt::Unchecked;
}
}
}
return QVariant();
}
Qt::ItemFlags selectionsetSqlModel::flags ( const QModelIndex & index ) const
{
if (index.column() == 2)
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable ;
else
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
}
bool selectionsetSqlModel::setData(const QModelIndex& index,const QVariant& value,int role)
{
bool v;
if(role == Qt::CheckStateRole && index.column() == 2)
{
bool selected = index.model()->data(index.model()->index(index.row(), 1), Qt::DisplayRole).toBool();
v = selected ? false : true;
}
//QModelIndex idx = QModelIndex(index.row(), 1, index);
//bool r = this->setData(idx,v,role);
QModelIndex top = createIndex(index.row(), 0);
QModelIndex bottom = createIndex(index.row(), 3);
emit dataChanged(top, bottom); // emit layoutChanged() if headers changed
//qDebug() << "Now Checkable Column: " << r << " = " << v;
return true;
}
To copy to clipboard, switch view to plain text mode
Bookmarks