PDA

View Full Version : How to start a function in parent with QItemDelegate



aekilic
23rd November 2008, 08:39
Hello all

We have QItemDelegate like this.


if(index.column() == 12)
{
QLineEdit *editor = new QLineEdit(parent);
connect(editor, SIGNAL(returnPressed()), parent, SLOT(x_x()));
return editor;
}

I would like to start x_x function from the parent, but I was not able to do it? Do you have any idea?

spirit
23rd November 2008, 08:41
pass pointer to needed object trought ctor of delegate and then use it in connect.

aekilic
23rd November 2008, 08:44
How can I do it? any example?

spirit
23rd November 2008, 08:51
void MyDelegate::setCustomHandler(QWidget *handler)
{
m_handler = handler;
}
....
if(index.column() == 12) {
QLineEdit *editor = new QLineEdit(parent);
connect(editor, SIGNAL(returnPressed()), m_handler, SLOT(x_x()));
return editor;
}
....
MyDelegate *delegate = new MyDelegate();
delegate->setCustomHandler(this);
....

aekilic
23rd November 2008, 09:14
I get a error like this.

m_handler' undeclared (first use
this function)

spirit
23rd November 2008, 09:17
you have to declare it like a class member, i.e.


class MyDeleaget: public QItemDelegate
{
.....
private:
QWidget *m_handler;
};