Hi all,
i have some trouble using QSqlRelationalDelegate with last qt version: 5.0.1.
I wrote this code, that works with qt-4.8:
//scadenze.h:
#ifndef SCADENZE_H
#define SCADENZE_H
class QTableView;
class QSqlRelationalTableModel;
class QSqlDatabase;
#include "database.h"
class Scadenze
{
public:
Scadenze();
private:
void initModel();
void NewStabili();
Database *m_database;
QTableView *table;
QSqlRelationalTableModel *model;
};
#endif // SCADENZE_H
//scadenze.cpp:
#include "scadenze.h"
#include <QtWidgets/QTableView>
#include <QSqlRelationalTableModel>
#include <QSqlDatabase>
#include <QtWidgets/QHeaderView>
//i tried with: #include <QSqlRelationalDelegate> too:
#include <QtSql/QSqlRelationalDelegate>
Scadenze::Scadenze()
{
//stabili = new Stabili();
//showtables = new ShowTables();
m_database = new Database();
m_database->connection();
m_database->createTables();
initModel();
table = new QTableView();
table->setModel(model);
table->setItemDelegate(new QSqlRelationalDelegate(table));//line 30
table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
table->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
}
[...]
//compiler error:
15:26:26: Running steps for project scadenziario...
15:26:26: Configuration unchanged, skipping qmake step.
15:26:26: Starting: "C:\Qt\Qt5.0.1\Tools\MinGW\bin\mingw32-make.exe"
C:/Qt/Qt5.0.1/Tools/MinGW/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'C:/Users/user/Dropbox/Programmi/Qt/scadenziario-build-Desktop_Qt_5_0_1_MinGW_32bit-Release'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_NEEDS_QMAIN -I..\Scadenziario -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtSql" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtGui" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtCore" -I"build\moc" -I"." -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\mkspecs\win32-g++" -o build\o\scadenze.o ..\Scadenziario\scadenze.cpp
..\Scadenziario\scadenze.cpp: In constructor 'Scadenze::Scadenze()':
..\Scadenziario\scadenze.cpp:30:32: error: expected type-specifier before 'QSqlRelationalDelegate'
..\Scadenziario\scadenze.cpp:30:32: error: expected ')' before 'QSqlRelationalDelegate'
..\Scadenziario\scadenze.cpp:30:61: error: no matching function for call to 'QTableView::setItemDelegate(int*)'
..\Scadenziario\scadenze.cpp:30:61: note: candidate is:
In file included from ..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include/QtWidgets/qtableview.h:45:0,
from ..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include/QtWidgets/QTableView:1,
from ..\Scadenziario\scadenze.cpp:11:
..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include/QtWidgets/qabstractitemview.h:134:10: note: void QAbstractItemView::setItemDelegate(QAbstractItemDelegate*)
..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include/QtWidgets/qabstractitemview.h:134:10: note: no known conversion for argument 1 from 'int*' to 'QAbstractItemDelegate*'
Makefile.Release:1769: recipe for target 'build/o/scadenze.o' failed
mingw32-make[1]: *** [build/o/scadenze.o] Error 1
mingw32-make[1]: Leaving directory 'C:/Users/user/Dropbox/Programmi/Qt/scadenziario-build-Desktop_Qt_5_0_1_MinGW_32bit-Release'
makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2
15:26:30: The process "C:\Qt\Qt5.0.1\Tools\MinGW\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project scadenziario (kit: Desktop Qt 5.0.1 MinGW 32bit)
When executing step 'Make'
Thanks in advance for your help.
Al
↧