Russian Qt Forum
Ноябрь 25, 2024, 10:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QCanvas и наложение объектов  (Прочитано 2360 раз)
Diablo
Гость
« : Март 27, 2007, 09:32 »

Здавствуйте!
У меня возникла проблема с QCanvas. Версия Qt 3.3.8 Мне нужно сделать интерактивный виджет, на котором должны находится много концентрических окружностей, точек и линий, притом все эти объекты перекрываются друг с другом.
Вот что происходит: я рисую круг (а именно создаю QCanvas, создаю QCanvasEllipse и показываю его - в итоге у меня должен получиться круг); далее провожу из центра круга линии доходящие до границ (создаю массив указателей на QCanvasLine и в цикле создаю объекты QCanvasLine и показываю их - в итоге у меня на экране должны быть круг, а на нем линии-радиусы); затем рисую круг меньшего радиуса с цветом фона (создаю QCanvasEllipse, заливаю его цветом фона QCanvas с целью получить кольцо, в котором нарисованы линии, которые разбивают это кольцо на секторы). Затем создаю QCanvasView и показываю QCanvas. На экране вижу: внутренний круг (который с цветом фона) перекрывает внешний как и должно быть, но линии не рисуются между кругам (то есть в кольце), некоторые линии оказываются перекрыты внутренним кругом (как и должно быть), а некоторые показываются сверху над всеми кругами. Это все я рисую в конструкторе класса унаследованного от  QWidget. Если я создаю и рисую линии в цикле, но не в конструкторе, а например по событию нажатия кнопки мыши, линии у меня вообще не видны, хотя диспечер задач говорит, что память для линий была выделена, то есть линии существуют, но перекрываются кругами.
У меня вопрос к вам. Как можно управлять порядком расположения объектов? На мой вгляд это довольно распространенная операция - расположение объектов в векторном графическом редакторе, я надеюсь в Qt это тоже можно делать. Пожалуйста, если знаете, подскажите, как это сделать с помощью QCanvas или может с помощью другого класса. Буду вам очень благодарен.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.087 секунд. Запросов: 20.