No, QT.
And, I' simply create the instance.
W_debug w_debug;
W_debug w_debug;
To copy to clipboard, switch view to plain text mode
Internally I use a private os stringstream to save the data.
And... How can I create the w_debug using * ?
W_debug *w_debug
w_debug<< "hello" // does not work ...
W_debug *w_debug
w_debug<< "hello" // does not work ...
To copy to clipboard, switch view to plain text mode
error : no match for 'operator<<' in '&((const CityModel*)this)->CityModel::w_debug
I dont undertand it .....
Added after 14 minutes:
New information :
I can use w_debug as I want in another project, but not in this one:
(It is an example of QT Gui programming)
main.
#include <QApplication>
#include <QHeaderView>
#include <QTableView>
#include "citymodel.h"
int main(int argc, char *argv[])
{
cities << "Arvika" << "Boden" ;
// << "Eskilstuna" << "Falun"
// << "Filipstad" << "Halmstad" << "Helsingborg" << "Karlstad"
// << "Kiruna" << "Kramfors" << "Motala" << "Sandviken"
// << "Skara" << "Stockholm" << "Sundsvall" << "Trelleborg";
CityModel cityModel;
cityModel.setCities(cities);
tableView.setModel(&cityModel);
tableView.setAlternatingRowColors(true);
tableView.
setWindowTitle(QObject::tr("Cities"));
tableView.show();
return app.exec();
}
#include <QApplication>
#include <QHeaderView>
#include <QTableView>
#include "citymodel.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QStringList cities;
cities << "Arvika" << "Boden" ;
// << "Eskilstuna" << "Falun"
// << "Filipstad" << "Halmstad" << "Helsingborg" << "Karlstad"
// << "Kiruna" << "Kramfors" << "Motala" << "Sandviken"
// << "Skara" << "Stockholm" << "Sundsvall" << "Trelleborg";
CityModel cityModel;
cityModel.setCities(cities);
QTableView tableView;
tableView.setModel(&cityModel);
tableView.setAlternatingRowColors(true);
tableView.setWindowTitle(QObject::tr("Cities"));
tableView.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
citymodel.h
#ifndef CITYMODEL_H
#define CITYMODEL_H
#include <QAbstractTableModel>
#include <QStringList>
#include <QVector>
#include <w_debug.h>
{
Q_OBJECT
public:
int role);
QVariant headerData
(int section, Qt
::Orientation orientation,
int role) const;
private:
int offsetOf(int row, int column) const;
QVector<int> distances;
W_debug w_debug;
};
#endif
#ifndef CITYMODEL_H
#define CITYMODEL_H
#include <QAbstractTableModel>
#include <QStringList>
#include <QVector>
#include <w_debug.h>
class CityModel : public QAbstractTableModel
{
Q_OBJECT
public:
CityModel(QObject *parent = 0);
void setCities(const QStringList &cityNames);
int rowCount(const QModelIndex &parent) const;
int columnCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role) const;
bool setData(const QModelIndex &index, const QVariant &value,
int role);
QVariant headerData(int section, Qt::Orientation orientation,
int role) const;
Qt::ItemFlags flags(const QModelIndex &index) const;
private:
int offsetOf(int row, int column) const;
QStringList cities;
QVector<int> distances;
W_debug w_debug;
};
#endif
To copy to clipboard, switch view to plain text mode
citymodel.cpp
#include <QtCore>
#include "citymodel.h"
CityModel
::CityModel(QObject *parent
){
w_debug.modo_log_start("c:/file.log");
}
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 {
std::string a="row count";
w_debug<<a;
return cities.count();
}
int CityModel
::columnCount(const QModelIndex & /* parent */) const {
w_debug<<"col count"<<"";
return cities.count();
}
{
w_debug<<"data"<<index.row()<<" "<<index.column()<<"";
if (!index.isValid())
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];
}
}
{
w_debug<<"setdata"<<index.row()<<" " <<index.column();
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
{
w_debug<<"headerdata"<<section<<" "<<orientation;
if (role == Qt::DisplayRole)
return cities[section];
}
Qt
::ItemFlags CityModel
::flags(const QModelIndex &index
) const{
w_debug<<"flags"<<index.row()<<" " <<index.column();
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;
}
#include <QtCore>
#include "citymodel.h"
CityModel::CityModel(QObject *parent)
: QAbstractTableModel(parent)
{
w_debug.modo_log_start("c:/file.log");
}
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
{
std::string a="row count";
w_debug<<a;
return cities.count();
}
int CityModel::columnCount(const QModelIndex & /* parent */) const
{
w_debug<<"col count"<<"";
return cities.count();
}
QVariant CityModel::data(const QModelIndex &index, int role) const
{
w_debug<<"data"<<index.row()<<" "<<index.column()<<"";
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)
{
w_debug<<"setdata"<<index.row()<<" " <<index.column();
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
{
w_debug<<"headerdata"<<section<<" "<<orientation;
if (role == Qt::DisplayRole)
return cities[section];
return QVariant();
}
Qt::ItemFlags CityModel::flags(const QModelIndex &index) const
{
w_debug<<"flags"<<index.row()<<" " <<index.column();
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;
}
To copy to clipboard, switch view to plain text mode
All w_debug's << , gives me the error (discards qualifiers .....
Bookmarks