crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в сигналы и слоты
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
demaker Дата 1.2.2013, 15:37
  Да нет, работает :)
Спасибо
lanz Дата 1.2.2013, 15:17
  Не работает?
demaker Дата 1.2.2013, 14:49
  Это понятно, т.е у меня 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();
};


Вы предлагайте так сделать
lanz Дата 1.2.2013, 14:26
  Чтобы использовать сигналы/слоты TreeWidgetItem и Widget должен наследовать от QObject.
demaker Дата 1.2.2013, 13:19
  Определил все и сигнал и слот

connect(items.at(index),SIGNAL(sg_unChecked(TreeWidgetItem*)),this,SLOT(sl_deletePlot(TreeWidgetItem*)));


и ВЫДАЕТ

no matching function for call to 'Widget::connect(TreeWidgetItem* const&, const char*, Widget* const, const char*)'
Алексей1153 Дата 31.1.2013, 13:05
  demaker, здравая мысль )
demaker Дата 31.1.2013, 12:58
  может
connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),this,SLOT(sl_itemChecked(Q
TreeWidgetItem*)));
в конструктор переместить
demaker Дата 31.1.2013, 9:05
  да сделал сигнал константным

signals:
    void sg_itemChecked(QTreeWidgetItem*) const;


действительно помогло :)
Спасибо!

у меня возник такой вопрос. :unsure:

Почему при перетаскивании item-ов у меня изначально первый, который изначально я беру - галка не ставится.
После у остальных, которые я хватаю ставится галка, и даже у того который был изначально.

И так со всеми.

Не могу понять, может сигнал изначально не доходит :unsure:

вот код:

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*)));
    }
}
Алексей1153 Дата 30.1.2013, 18:59
  это не отправка сигнала, а соединение сигнала со слотом вообще то )

и всё как бы намекает, что из константной функции это сделать не получится напрямую

но если сильно хочется, можно попробовать

connect(tree,SIGNAL(sg_itemChecked(QTreeWidgetItem*)),static_cast<TreeWidget*>(this),SLOT(sl_itemChecked(QTreeWidgetItem*)));
Авварон Дата 30.1.2013, 18:04
  Сделай сигнал константным. А нафига кидать сигнал из конст() функции?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 9:54