Выдает ошибку
error: passing 'const TreeWidget' as 'this' argument of 'void TreeWidget::sg_itemChecked(QTreeWidgetItem*)' discards qualifiers
при
connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),this,SLOT(sl_itemChecked(QTreeWidgetItem*)));
virtual QMimeData * mimeData (const QList<QTreeWidgetItem *> items) const;
Сделай сигнал константным. А нафига кидать сигнал из конст() функции?
это не отправка сигнала, а соединение сигнала со слотом вообще то )
и всё как бы намекает, что из константной функции это сделать не получится напрямую
но если сильно хочется, можно попробовать
connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),static_cast<TreeWidget*>(this),SLOT(sl_itemChecked(QTreeWidgetItem*)));
да сделал сигнал константным
signals:
void sg_itemChecked(QTreeWidgetItem*) const;
QMimeData * TreeWidget::mimeData (const QList<QTreeWidgetItem *> items) const
{
QMimeData *mimeData = new QMimeData();
QByteArray encodedData;
foreach (QTreeWidgetItem* item, items)
{
qDebug() <<"index = " << fileName_Item->indexOfChild(item);
qDebug()<<"data = "<<item->data(0,Qt::EditRole);
emit sg_itemChecked(item);
encodedData.append(item->data(0,Qt::EditRole).toByteArray());
}
mimeData->setData( "application/x-qt-windows-mime;value=\"ComtradeChannel\"", encodedData);
return mimeData;
}
void Widget::sl_itemChecked(QTreeWidgetItem *item)
{
item->setCheckState(0,Qt::Checked);
}
void Widget::dropEvent(QDropEvent *event)
{
if (event->mimeData()->hasFormat("application/x-qt-windows-mime;value=\"ComtradeChannel\""))
{
QByteArray d(event->mimeData()->data("application/x-qt-windows-mime;value=\"ComtradeChannel\""));
qDebug()<<"d = "<<d;
connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),this,SLOT(sl_itemChecked(QTreeWidgetItem*)));
}
}
может
connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),this,SLOT(sl_itemChecked(Q
TreeWidgetItem*)));
в конструктор переместить
demaker, здравая мысль )
Определил все и сигнал и слот
connect(items.at(index),SIGNAL(sg_unChecked(TreeWidgetItem*)),this,SLOT(sl_deletePlot(TreeWidgetItem*)));
Чтобы использовать сигналы/слоты TreeWidgetItem и Widget должен наследовать от QObject.
Это понятно, т.е у меня TreeWidgetItem не наследуется от QObject?
class TreeWidgetItem: public QObject,public QTreeWidgetItem
{
Q_OBJECT
public:
Plot* p;
public:
explicit TreeWidgetItem(TreeWidgetItem*parent);
explicit TreeWidgetItem(QTreeWidget*parent);
explicit TreeWidgetItem(QTreeWidgetItem*parent);
~TreeWidgetItem();
signals:
void sg_unChecked();
};
Не работает?
Да нет, работает
Спасибо
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)