Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Как нарисовать линию в 2px шириной, в QGraphicsScene? 
V
    Опции темы
Elfet
Дата 6.2.2010, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Привет всем ещё раз!

Подскажите пожалуйста как нарисовать линию в два пиксела шириной в QGraphicsScene независимо от scale? 

Пытаюсь сделать вот так:
Код

wallPen = QPen(QColor(204,0,0));
wallPen.setWidthF(0.02); // странно, так как в документации указано, что нужно ставить в пикселах, но если ставлю 2.0 - то это слишком жирная линия получается (около 40 пикселов)


Но потом, если я пытаюсь изменять scale в QGraphicsView - то и размер линии меняется.

Можно ли как-нибудь сделать так что бы ширина линии оставалась постоянной? 


--------------------
PM MAIL WWW Skype   Вверх
artsb
Дата 6.2.2010, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(Elfet @  6.2.2010,  21:11 Найти цитируемый пост)
Можно ли как-нибудь сделать так что бы ширина линии оставалась постоянной?  

Может просто её высчитывать. Это много времени не займет. Тем более, что вам известны scale и ширина пера ;)


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Elfet
Дата 6.2.2010, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



artsb, и что дальше с ней делать? А если скале изменился? Перерисовывать? Тогда для чего мне модель MVC? smile 
Других путей нет?


--------------------
PM MAIL WWW Skype   Вверх
artsb
Дата 6.2.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Цитата(Elfet @  6.2.2010,  22:05 Найти цитируемый пост)
А если скале изменился? Перерисовывать?

ага.

Цитата(Elfet @  6.2.2010,  22:05 Найти цитируемый пост)
Тогда для чего мне модель MVC?

я не знаю что это такое и с чем его едят smile просто предложил свой вариант решения проблемы.

Кстати, если учесть, что исходный масштаб равен 100, то:
Код

wallPen.setWidthF((new_scale * 0.02) / 100);



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Elfet
Дата 7.2.2010, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ладно, буду искать другой способ решить проблему smile


--------------------
PM MAIL WWW Skype   Вверх
artsb
Дата 7.2.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: нет
Всего: 64



Elfet, это я своё мнение высказал. Подожди, пока другие форумчане подтянутся, может кто и подскажет  smile 


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
kamre
Дата 9.2.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(Elfet @ 6.2.2010,  21:11)
как нарисовать линию в два пиксела шириной в QGraphicsScene независимо от scale? 

Вроде бы нельзя такое сделать напрямую:
Цитата

QGraphicsItem does not support use of cosmetic pens with a non-zero width.

PM MAIL   Вверх
Elfet
Дата 9.2.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



kamre, ооо, класс. smile


--------------------
PM MAIL WWW Skype   Вверх
W4FhLF
Дата 9.2.2010, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Elfet, ты всё пытаешься создать свой компонент по отрисовке графиков вместо того, чтобы взять уже готовые?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Elfet
Дата 9.2.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



W4FhLF, нет, это я делаю отображение двух мерной сетки. smile 
Но мы решили всё же перейти на OpenGL и в двух мерном случае.

Добавлено через 35 секунд
для графиков я понял что лучше использовать Qwt smile


--------------------
PM MAIL WWW Skype   Вверх
W4FhLF
Дата 9.2.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Цитата(Elfet @  9.2.2010,  16:02 Найти цитируемый пост)
для графиков я понял что лучше использовать Qwt 


Есть ещё MathGL. Мощная либа. Авторы предоставляют виджет для Qt, можно юзать. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Elfet
Дата 9.2.2010, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



W4FhLF, спасибо! smile


--------------------
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.