crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> GridView && обработка сигналов из C++ класса
greh
  опции профиля:
сообщение 27.9.2011, 17:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 48
Регистрация: 23.11.2009
Пользователь №: 1252

Спасибо сказали: 0 раз(а)




Репутация:   0  


Задача: сделать визуализацию алгоритма игры пятнашки. Решил использовать для этого qml...

Модель описал на C++, гуй пишу на qml. Перерыв всю доступную документацию так и не смог понять:
1. Как при определённом событии добавить элемент в GridView? Как вообще динамически добавлять / удалять и перемещать элементы?
2. почему qml не видит сигналов моего класса, но при этом корректно вызывает слоты?

Класс, наследованый от QObject:
Раскрывающийся текст
#ifndef BOARD_H
#define BOARD_H

#include

#include "tile.h"

class Board : public QObject
{
Q_OBJECT

public:
explicit Board(QObject *parent = 0);
/*
...
*/
signals:
void boardCleared();
void sizeChanged(unsigned rows, unsigned columns);
void tileMoved(unsigned fromX, unsigned fromY, unsigned toX, unsigned toY);
void tileCreated(unsigned number, unsigned x, unsigned y);

public slots:
void sort();
void setBoardSize(unsigned rows, unsigned columns);
void resetBoard();

};

#endif // BOARD_H


Связка объекта с контекстом qml:
view->rootContext()->setContextProperty("BoardModel", board);


Слоты работают:
Раскрывающийся текст
Button {
anchors.horizontalCenter: parent.horizontalCenter
onPlay: {
BoardModel.sort();
}

onPause: {
BoardModel.resetBoard();
}
}


Сигналы нет:

Раскрывающийся текст

Connections {
            target: BoardModel
            onSizeChanged: { color = "white" }
        }

Starting /home/greh/QtProjects/Nteen_puzzle/Nteen_puzzle...
file:///home/greh/QtProjects/Nteen_puzzle/GameArea.qml:74:9: QML Connections: Cannot assign to non-existent property "onSizeChanged"
file:///home/greh/QtProjects/Nteen_puzzle/GameArea.qml:75: ReferenceError: Can't find variable: BoardModel
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PAFOS
  опции профиля:
сообщение 12.10.2011, 16:11
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


Отталкивайся от сообщения file:///home/greh/QtProjects/Nteen_puzzle/GameArea.qml:75: ReferenceError: Can't find variable: BoardModel

есть ли в данной области видимости элемент с id: BoardModel?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 8:43