crossplatform.ru

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

> Цвет линий графика, неясно почему не устанавливается
AD
  опции профиля:
сообщение 25.4.2008, 10:45
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цвета линий читаются из файла и записываются в вектор. Вид записи: #RRGGBB или стандартно-определенные (red, blue, etc). Записываю этот цвет в QColor. При чтении на другом куске кода почему-т все время выдается черный цвет. как от это бага избавится?
Вот кусок записи кода:
void DlgNameReader::initColor(QString* rec)
{
    /// Кое-какой код
    dname_vec[dname_vec.size() - 2].setColor(str_right);
    dname_vec[dname_vec.size() - 1].setPrMin(dname_vec[dname_vec.size() - 2].getPrMin());
    dname_vec[dname_vec.size() - 1].setPrMax(dname_vec[dname_vec.size() - 2].getPrMax());
            }
        }
    }


Вот присвоение уже QColor:
for(vector<Reader::DName>::iterator jter=dist_vec -> begin(); jter!=dist_vec -> end(); ++jter)
    if(jter -> getPrName() == parameter -> Name().c_str() && jter -> getAddress() == parameter -> Address())
    {
        QString s_color = jter -> getColor();
        clr = QColor(s_color);
        break;
    }
    QFactParam inParam(parameter, DISTPARAM, &clr);
    if(check -> isChecked())
        fact_prm.push_back(inParam);


А вот здесь все время выдается #000000:
QString color = fact_prm[id].param_color -> name();
painter -> setPen(*fact_prm[id].param_color);
painter -> drawPolyline(polyline);


Сообщение отредактировал AD - 25.4.2008, 10:56
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Andrew Selivanov
  опции профиля:
сообщение 25.4.2008, 12:30
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 249
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 3

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




Репутация:   6  


Цитата(AD @ 25.4.2008, 11:45) *
Вот присвоение уже QColor:
for(vector<Reader::DName>::iterator jter=dist_vec -> begin(); jter!=dist_vec -> end(); ++jter)
    if(jter -> getPrName() == parameter -> Name().c_str() && jter -> getAddress() == parameter -> Address())
    {
        QString s_color = jter -> getColor();
        clr = QColor(s_color);
        break;
    }
    QFactParam inParam(parameter, DISTPARAM, &clr);
    if(check -> isChecked())
        fact_prm.push_back(inParam);


У тебя цикл for только для первого if, остальное почему-то на том же уровне, но выполняется оно не в цикле.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 0:33