delegate isn't work with QSqlTableModel?
Hi,
I have:
Code:
model->setTable( "table" );
model->select();
model
->setHeaderData
( 0, Qt
::Horizontal,
QObject::tr("Annual Pay") );
model
->setHeaderData
( 1, Qt
::Horizontal,
QObject::tr("First Name") );
model
->setHeaderData
( 2, Qt
::Horizontal,
QObject::tr("Last Name") );
model->removeColumn( 0 );
TableResult->setModel( model );
BarDelegate delegate;
TableResult->setItemDelegateForColumn(1, &delegate);
TableResult->show();
and in Delegate class i've:
Code:
{
public:
BarDelegate
( QObject *parent
= 0 );
};
In createEditor:
Code:
{
lineEdit->setAutoFillBackground( true );
lineEdit->installEventFilter( const_cast<BarDelegate*>(this) );
return lineEdit;
}
When I press on a cell TableResult, there is no QMessageBox :/
Similar with:
Code:
{
QString value
= index.
model()->data
( index, Qt
::DisplayRole ).
toString();
static_cast<QLineEdit*>( editor )->setText( value );
}
and :/
Code:
{
model->setData( index, static_cast<QLineEdit*>( editor )->text() );
}
Re: delegate isn't work with QSqlTableModel?
You cannot instantiate the delegate on the stack. You must instantiate it on the heap instead:
Code:
BarDelegate *delegate = new BarDelegate(this);
TableResult->setItemDelegateForColumn(1, delegate);
Re: delegate isn't work with QSqlTableModel?