crossplatform.ru

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


  Ответ в Как связать итемы на сцене с другими данными?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 10 сообщений [ в обратном порядке ]
epishev Дата 21.4.2011, 13:19
 
Цитата(wiz29 @ 19.4.2011, 16:40) *
Цитата(epishev @ 19.4.2011, 16:26) *
Цитата(wiz29 @ 19.4.2011, 15:21) *
что за объект buf? char*?


QString buf

 if(bufListObject.at(i)->data(1)==item->text(0))

выполняется? если нет то, нужен дамп строк в консоль как QString (лучше выводить в дебаге строки в кавычках, чтоб увидеть все пробелы на конце)
qDebug()<<"\'"<<bufListObject.at(i)->data(1).toString()<<"\'";
qDebug()<<"\'"<<item->text(0)<<"\'";



спасибо! очень помогло в поиске причины
wiz29 Дата 19.4.2011, 15:40
 
Цитата(epishev @ 19.4.2011, 16:26) *
Цитата(wiz29 @ 19.4.2011, 15:21) *
что за объект buf? char*?


QString buf

 if(bufListObject.at(i)->data(1)==item->text(0))

выполняется? если нет то, нужен дамп строк в консоль как QString (лучше выводить в дебаге строки в кавычках, чтоб увидеть все пробелы на конце)
qDebug()<<"\'"<<bufListObject.at(i)->data(1).toString()<<"\'";
qDebug()<<"\'"<<item->text(0)<<"\'";
epishev Дата 19.4.2011, 15:26
 
Цитата(wiz29 @ 19.4.2011, 15:21) *
что за объект buf? char*?


QString buf
wiz29 Дата 19.4.2011, 14:21
 
if(bufListObject.at(i)->data(1)==item->text(0))

Выглядит немного странно, хотя должно производится автоматическое приведение QString к QVariant

но скорей всего у тебя при сравнении QVariant'ов происходит фейл, что за объект buf? char*?
epishev Дата 19.4.2011, 13:55
  сори, следующий раз буду более конкретен

QGraphicsPixmapItem* pPixmapItem = scene.addPixmap(bufPm);
pPixmapItem->setFlag(QGraphicsItem::ItemIsMovable);
pPixmapItem->setData(1,buf);


//выбираю из списка итем
void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem* item, int column)
{

//................................
        bufListObject = scene.items();
        for(int i=0;i<bufListObject.count();i++)
            if(bufListObject.at(i)->data(1)==item->text(0))
                    bufListObject.at(i)->setAcceptedMouseButtons(Qt::LeftButton);
}
wiz29 Дата 19.4.2011, 11:37
  привет, будь более конкретен в своих вопросах, по приведенным кускам кода можно лишь догадываться, что за типы объектов в данных кусках кода присутствуют.
epishev Дата 19.4.2011, 9:36
  Всем привет.

Такой вопрос..

Как связать итемы на сцене с другими данными? Например со списком treeWidget.
При выборе строки с определенными данными, получаем нужный итем на сцене.

При добавлении итема (картинки) на сцену пишу.

Qstring buf=”1”; //имя
pPixmapItem->setData(1,buf);



потом при клике по итему из списка treeWidget...

bufListObject = scene.items();
for(int i=0;i<bufListObject.count();i++)
        if(bufListObject.at(i)->data(1)==item->text(0))
           bufListObject.at(i)->setVisible(false);


но ничего не происходит....

Может я не так понял как с data() и setData() работать?

Заранее спасибо!
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 16:16