The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Создать новую тему
 - Свернуть нити
Пометить прочитанным
Архив | Избранное | Мое | Новое | | |  
Форум Программирование под UNIX
Получить данные из QHeightMapSurfaceDataProxy, !*! v.karak, 05-Фев-18, 09:47  [ | | | ] [линейный вид] [смотреть все] [раскрыть новое]
  • gt оверквотинг удален Кажется понял в чем проблема Я пытался получить значени, !*! v.karak (ok), 11:42 , 05-Фев-18 (1)
    >[оверквотинг удален]
    >     layerOneSeries->setItemLabelFormat(QStringLiteral("(@xLabel, @zLabel): @yLabel"));
    >     layerOneProxy->setValueRanges(34.0f, 40.0f, 18.0f, 24.0f);
    >     layerOneSeries->setDrawMode(QSurface3DSeries::DrawSurface);
    >     layerOneSeries->setFlatShadingEnabled(false);
    >     surface->addSeries(layerOneSeries);
    > Массив строк, который заполняю сам - всегда возвращается, но вот тот, что
    > создается через
    > QHeightMapSurfaceDataProxy никогда :( В Qt только начинаю. Ссылка на пример:
    > https://doc.qt.io/qt-5.10/qtdatavisualization-surface-exampl...
    > Буду благодарен, за любую помощь!

    Кажется понял в чем проблема.
    Я пытался получить значения сразу после создания объекта QHeightMapSurfaceDataProxy *layerOneProxy, а он заполняется позже, после того как сработает таймер вот здесь:


    348    QHeightMapSurfaceDataProxyPrivate::QHeightMapSurfaceDataProxyPrivate(QHeightMapSurfaceDataProxy *q)
    349        : QSurfaceDataProxyPrivate(q),
    350          m_minXValue(defaultMinValue),
    351          m_maxXValue(defaultMaxValue),
    352          m_minZValue(defaultMinValue),
    353          m_maxZValue(defaultMaxValue)
    354    {
    355        m_resolveTimer.setSingleShot(true);
    356        QObject::connect(&m_resolveTimer, &QTimer::timeout,
    357                         this, &QHeightMapSurfaceDataProxyPrivate::handlePendingResolve);
    358    }


    Поэтому, я создал обработчик на сигнал arrayReset() и уже в нем данные в массиве готовы к использованию


    connect(layerNewProxy, SIGNAL(arrayReset()), this, SLOT(arrayMapDataReset()));

    void Foo::arrayMapDataReset()
    {
        const QSurfaceDataArray *array = layerNewProxy->array();
        if(array) {
            statusBar()->showMessage(QString::number(layerNewProxy->columnCount())+" x "+
                                     QString::number(layerNewProxy->rowCount()));
        }
    }

    сообщить модератору +/ответить
 
Пометить прочитанным Создать тему
Архив | Избранное | Мое | Новое | | |



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру