crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Элементы не добавляются в вектор, Ошибка -1073741819
QMainWindow
  опции профиля:
сообщение 13.2.2011, 13:09
Сообщение #1


Участник
**

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

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




Репутация:   0  


Не получается добавить double число в QVector. В заголовочном файле записал данный вектор, в конструкторе этого класса пишу: MyVector->append(MyValue); Вместо продолжения работы пишет ошибку -1073741819. Объект класса - виджет, которые создается в конструкторе ГО:
MainWindow::MainWindow()
{
    ...
    paintWidget = new PaintWidget(this);
    paintWidget->setGeometry(0, 15, width(), height()-30);
    paintWidget->setVisible(true);
    ...
    connect(this, SIGNAL(Data(QVector<double>*,QVector<double>*)), paintWidget, SLOT(PaintData(QVector<double>*,QVector<double>*)));
    ...
}

Вообще в него передаю, как видно выше, в слот PaintData два вектора. Затем хочу переписать их в два других вектора, принадлежащих этому виджету, но он выдает ошибку (т.е. элементы не добавляются не в конструкторе, не в слоте). Ощущение, будто он не хочет работать в принципе с QVector. Как лечить?)

Собственно конструктор моего виджета:
PaintWidget::PaintWidget(QWidget *parent):QWidget(parent)
{
    timer = new QTimer(this);
    j=0;
    X->append(0); //Тут пытаюсь добавить,а не получается...
    Y->append(0);
    connect(timer, SIGNAL(timeout()), this, SLOT(NewFrame()));
}

и на всякий случай сам слот:
void PaintWidget::PaintData(QVector<double> *CoordX, QVector<double> *CoordY)
{
    X->clear(); Y->clear();
    for(i=0; i<CoordX->size(); i++)
    {
        X->append(CoordX->value(i));
        Y->append(CoordY->value(i));
    }
    qDebug()<<CoordX->size()<<CoordY->size();
    timer->start(42);
}


Сообщение отредактировал QMainWindow - 13.2.2011, 13:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 13.2.2011, 16:12
Сообщение #2


Старейший участник
****

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

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




Репутация:   9  


А где у тебя векторы создаются?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Dovgon
  опции профиля:
сообщение 13.2.2011, 19:38
Сообщение #3


Студент
*

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

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




Репутация:   0  


Ты используешь указатель на вектор, но не где не показал как его создаешь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
QMainWindow
  опции профиля:
сообщение 13.2.2011, 20:06
Сообщение #4


Участник
**

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

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




Репутация:   0  


Спасибо, получилось.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Obey-Kun
  опции профиля:
сообщение 25.2.2011, 4:15
Сообщение #5


Студент
*

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

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




Репутация:   0  


Используй сигналы и слоты, работающие с const QVector&. Указатели тут ни к чему.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 25.2.2011, 10:33
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(Obey-Kun @ 25.2.2011, 4:15) *
Используй сигналы и слоты, работающие с const QVector&. Указатели тут ни к чему.

да. и у вектора есть способы скопировать его по приличнее чем рукописный цикл!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Obey-Kun
  опции профиля:
сообщение 25.2.2011, 18:15
Сообщение #7


Студент
*

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

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




Репутация:   0  


Кстати да. А operator<< aka append() для vector<T> в качестве аргумента есть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 8.12.2019, 19:13