crossplatform.ru

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

jerdeks
  опции профиля:
сообщение 23.9.2011, 9:32
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 14.9.2011
Пользователь №: 2874

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




Репутация:   0  


Какой-то бред. QStateMachineScene наследуется от сцены. На ней сетка из точек (QStateMachineGridPoint). Надо выделить несколько. Вот такой примерно код:
void QStateMachineScene::func() {

    QPainterPath nearest_points_rect;
    nearest_points_rect.addRect(0, 0, 200, 100);

    setSelectionArea(nearest_points_rect, QTransform(curItem->matrix()));
    QList<QGraphicsItem *> nearest_points = selectedItems();

    qWarning(QString("%1").arg(nearest_points.count()).toAscii()); // Всегда печатает или 5, или 0.

    // Выделенные точки должны покраситься в зеленый. Красится столбик из пяти точек слева сверху.
    foreach (QGraphicsItem *item, nearest_points)
        if (dynamic_cast<QStateMachineGridPoint *>(item))
            ((QStateMachineGridPoint*)item)->setBrush(Qt::green);

    clearSelection();
}


Цитата(jerdeks @ 23.9.2011, 10:26) *
Какой-то бред. QStateMachineScene наследуется от сцены. На ней сетка из точек (QStateMachineGridPoint). Надо выделить несколько. Вот такой примерно код:
void QStateMachineScene::func() {

    QPainterPath nearest_points_rect;
    nearest_points_rect.addRect(0, 0, 200, 100);

    setSelectionArea(nearest_points_rect);
    QList<QGraphicsItem *> nearest_points = selectedItems();

    qWarning(QString("%1").arg(nearest_points.count()).toAscii()); // Всегда печатает или 5, или 0.

    // Выделенные точки должны покраситься в зеленый. Красится столбик из пяти точек слева сверху.
    foreach (QGraphicsItem *item, nearest_points)
        if (dynamic_cast<QStateMachineGridPoint *>(item))
            ((QStateMachineGridPoint*)item)->setBrush(Qt::green);

    clearSelection();
}



[quote name='jerdeks' date='23.9.2011, 10:27' post='53201']
Какой-то бред. QStateMachineScene наследуется от сцены. На ней сетка из точек (QStateMachineGridPoint). Надо выделить несколько. Вот такой примерно код:
void QStateMachineScene::func() {

    QPainterPath nearest_points_rect;
    nearest_points_rect.addRect(0, 0, 200, 100);

    setSelectionArea(nearest_points_rect);
    QList<QGraphicsItem *> nearest_points = selectedItems();

    qWarning(QString("%1").arg(nearest_points.count()).toAscii()); // Всегда печатает или 5, или 0.

    // Выделенные точки должны покраситься в зеленый. Красится столбик из пяти точек слева сверху.
    foreach (QGraphicsItem *item, nearest_points)
        if (dynamic_cast<QStateMachineGridPoint *>(item))
            ((QStateMachineGridPoint*)item)->setBrush(Qt::green);

    clearSelection();
}


Блять, где кнопка "редактировать"?

В общем в строке
setSelectionArea(nearest_points_rect, QTransform(curItem->matrix()));
нет второго аргумента, просто по-всякому пробовал
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 23.6.2025, 9:07