Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
AD |
25.4.2008, 10:45
Сообщение
#1
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цвета линий читаются из файла и записываются в вектор. Вид записи: #RRGGBB или стандартно-определенные (red, blue, etc). Записываю этот цвет в QColor. При чтении на другом куске кода почему-т все время выдается черный цвет. как от это бага избавится?
Вот кусок записи кода: Вот присвоение уже QColor: А вот здесь все время выдается #000000:
Сообщение отредактировал AD - 25.4.2008, 10:56 |
|
|
|
|
ViGOur |
25.4.2008, 10:53
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Я бы на твоем месте сдела не vector<QFactParam>, а vector<QFactParam*>.
|
|
|
|
|
AD |
25.4.2008, 10:56
Сообщение
#3
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(ViGOur @ 25.4.2008, 11:53) Link Я бы на твоем месте сдела не vector<QFactParam>, а vector<QFactParam*>. а в чем большая разница-то? |
|
|
|
|
ViGOur |
25.4.2008, 12:22
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
У тебя будет происходить куча операций копирования.
Посмотри на результат работы данного кода. Я его для примера написал. |
|
|
|
|
Andrew Selivanov |
25.4.2008, 12:30
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6
|
Цитата(AD @ 25.4.2008, 11:45) Link Вот присвоение уже QColor: У тебя цикл for только для первого if, остальное почему-то на том же уровне, но выполняется оно не в цикле. |
|
|
|
|
AD |
25.4.2008, 13:34
Сообщение
#6
|
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17
|
Цитата(ViGOur @ 25.4.2008, 13:22) Link У тебя будет происходить куча операций копирования. Посмотри на результат работы данного кода. Я его для примера написал. Посмотрел код, действительно некрасиво. Но как это к моему случаю относится? Можно пример правильного кода относительно моей программы! Заранее благодарю! |
|
|
|
|
ViGOur |
25.4.2008, 14:00
Сообщение
#7
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
Соответственно в коде исправляешь vector<QFactParam> на vector<QFactParam*>...
|
|
|
|
|
Litkevich Yuriy |
25.4.2008, 16:04
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(' date='25.4.2008, 14:56) Link в чем большая разница-то? вектор это же контейнер, а в Qt4 в контейнер рекомендуют только указатели класть, если я ничего не путаю. |
|
|
|
|
ViGOur |
25.4.2008, 16:26
Сообщение
#9
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40
|
В данном случае используется не Qt'шный QVector, а STL vector. Но в принципе желательно также использовать указатели.
|
|
|
|
|
Tonal |
28.4.2008, 10:25
Сообщение
#10
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17
|
По приведённому тобой коду нельзя сказать где ошибка.
Несколько уточняющих вопросов: 1) Во втором куске кода, где и как определено имя clr? 2) Покажи конструктор, QFactParam который там вызывается. 3) Второй и 3ий кусок кода как распологаются друг относительно друга (в одном блоке, в одной процедуре, в одном классе...)? Предположение, основанное на телепатии - в QFactParam ты запоминаешь адрес локального объекта, который разрушается при выходе из блока, а используешь этот адрес совсем в другой функции. По поводу хранения в векторах объектов и указателей - правильно использовать то, что нужно для задачи, а не что попало. Сообщение отредактировал Tonal - 28.4.2008, 10:26 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 13.11.2025, 17:22 |