crossplatform.ru

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


  Ответ в QGraphicsRectItem и setPos()
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
lifrost Дата 1.4.2011, 12:01
 
Цитата(abc @ 1.4.2011, 13:52) *
пусть двигается, но изначально строй окно по заданным размерам, пожааааалуйста)

вот двигаю полигоны в классе сцены
красота)
Прикрепленный файл  WDesigner.zip ( 30.64 килобайт ) Кол-во скачиваний: 186


Ок, изначально размеры, потом можем двигать.
Да - вот от теперь вижу что от сцены - все круто )
abc Дата 1.4.2011, 11:52
  пусть двигается, но изначально строй окно по заданным размерам, пожааааалуйста)

вот двигаю полигоны в классе сцены
красота)
Прикрепленный файл  WDesigner.zip ( 30.64 килобайт ) Кол-во скачиваний: 186
lifrost Дата 1.4.2011, 7:33
 
Цитата(abc @ 31.3.2011, 13:43) *
2) задаёшь новые координаты вершин, затем устанавливаешь новые полигоны для итемов, в которых эти вершины участвуют

а я вижу пользование этой программой так:
передо мной бумажка, на которой расписаны размеры окна. я в программе ввожу эти размеры, а программа их пропорционально уменьшает и рисует окно.. Зачем мне колбасить окно мышью, если заранее известны размеры? Створки в окно можно добавлять уже вручную... а можно и створки по заданным размерам автоматом рисовать. ну, это с прямоугольным окном. более сложные детали, наверное, пусть пользователь сам рисует

Вот если бы было все так просто, но во всех программах сделано так что можно и вводить и двигать размер окна....

2) это ты написал про реализацию для одного класса, а если каждый полигон в своем классе, то как тогда его перерисовать, у меня чет не вышло

Попробовал я унаследоваться от сцены и рисовать там полигоны, мне чет эта затея теперь не нравиться....
abc Дата 31.3.2011, 11:43
  2) задаёшь новые координаты вершин, затем устанавливаешь новые полигоны для итемов, в которых эти вершины участвуют

а я вижу пользование этой программой так:
передо мной бумажка, на которой расписаны размеры окна. я в программе ввожу эти размеры, а программа их пропорционально уменьшает и рисует окно.. Зачем мне колбасить окно мышью, если заранее известны размеры? Створки в окно можно добавлять уже вручную... а можно и створки по заданным размерам автоматом рисовать. ну, это с прямоугольным окном. более сложные детали, наверное, пусть пользователь сам рисует
lifrost Дата 31.3.2011, 10:20
 
Цитата(abc @ 31.3.2011, 11:57) *
я проснулся ночью в поту! я полдня мучился, не знал, как обойтись без глобальных переменных, а ведь это же очевидно - двигать итемы в классе сцены... она будет знать обо всех точках итемов, и всех их перерисовывать... итемам ничего не нужно будет знать друг о друге... я помню, как я в начале нашей работы отвёл тебя от идеи ловить мышь в классе сцены... я, однако, тогда не знал, что квадрат будет составлен из нескольких полигонов, а потом я совершенно не подумал вернуться к твоему изначальному плану.
короче, твой вариант с дорисовыванием по кликам можно доработать... но скашивание всё равно вызовет проблемы, о которых я уже писал
по вопросам:
1) а как ты одну добавляешь? это ведь QGraphicsRectItem?
2) ты не понял, как совместно перерисовывать полигоны? или как это сделать без глобальных переменных?

если грани имеют стандартную ширину, это облегчает дело, но я ещё хочу обратить твоё внимание, что размеры нашего окна должны быть пропорциональны размерам реального окна


Так =). Все-таки нужно наследоваться от сцены, добавить нужно кол-во полигонов и двигать их? На счет скосов, пока можно обойтись без этого.
В итоге: получается забить на все предыдущие варианты?

1) уже понял.
2) да я не понял как совместно перерисовать итемы без кликов.

Хотя эти два вопроса можно выкинуть раз все таки наследоваться от сцены )) Там кстати и текст с размерами будет проще вставить...ах да вот на счет масштабирование реальный размер и нарисованный - вот тут реально сложновато все про масштабировать...
abc Дата 31.3.2011, 9:57
  я проснулся ночью в поту! я полдня мучился, не знал, как обойтись без глобальных переменных, а ведь это же очевидно - двигать итемы в классе сцены... она будет знать обо всех точках итемов, и всех их перерисовывать... итемам ничего не нужно будет знать друг о друге... я помню, как я в начале нашей работы отвёл тебя от идеи ловить мышь в классе сцены... я, однако, тогда не знал, что квадрат будет составлен из нескольких полигонов, а потом я совершенно не подумал вернуться к твоему изначальному плану.
короче, твой вариант с дорисовыванием по кликам можно доработать... но скашивание всё равно вызовет проблемы, о которых я уже писал
по вопросам:
1) а как ты одну добавляешь? это ведь QGraphicsRectItem?
2) ты не понял, как совместно перерисовывать полигоны? или как это сделать без глобальных переменных?

если грани имеют стандартную ширину, это облегчает дело, но я ещё хочу обратить твоё внимание, что размеры нашего окна должны быть пропорциональны размерам реального окна
lifrost Дата 31.3.2011, 7:09
 
Цитата(abc @ 30.3.2011, 13:49) *
в реализации new Arс ты столкнулся с той же проблемой, что и я - когда при скашивании граней, они теряют параллельность своих линий. А почему нельзя добавить больше одной перегородки?
в реализации newWindow можно раздвигать и без кликов - глобальные переменные спасае)
а моя грань поможет сделать сложную фигуру, это может быть одной из возможностей программы... чтоб уметь нарисовать совершенно косое кривое извращение
я думаю, что нужно как раз качественно реализовать наиболее часто используемый вид окна - прямоугольник, с возможностью добавлять внутрь перегородки, удалять грани и притютюхивать на их место арку..
можно просто несколько шаблонов сделать - простой прямоугольник, прямоугольник с аркой, ну и что там ещё
ещё тебе нужно уметь изменять ширину граней... а уголки двух граней, которые стыкуются, всегда равны?

Цитата(lifrost @ 30.3.2011, 10:59) *
Кстати, есть ещё идея со сигналами/слотами...

да, хорошая идея) эт чтоб избавиться от глобальных переменных, как я понимаю?
можно и класс сцены занаследовать и двигать итемы в ней, только нужно будет проверять, какой итем под мышью


1) А как добавить больше одной перегородки в реализации new Arc...?
2) В new Window - я не понял как дорисовать без кликов ((
3) Углы всегда равны.

На счет сигнал/слот, ну во-первых, избавиться от глобальных переменных, а во-вторых, чтобы другие классы видели изменения точек - тока я вообще без понятия как это реализовать )) Я пробовал множественное наследование, но пока без успешно.

Ах, да - на счет ширины граней - это на самом деле не обязательно, я такого просто не видел в других программах, если это тока какая-то фишка будет. Просто с точки зрения производственной реализации это не реально - грани - это же профиль, а он имеет стандартную ширину.


abc Дата 30.3.2011, 11:49
  в реализации new Arс ты столкнулся с той же проблемой, что и я - когда при скашивании граней, они теряют параллельность своих линий. А почему нельзя добавить больше одной перегородки?
в реализации newWindow можно раздвигать и без кликов - глобальные переменные спасае)
а моя грань поможет сделать сложную фигуру, это может быть одной из возможностей программы... чтоб уметь нарисовать совершенно косое кривое извращение
я думаю, что нужно как раз качественно реализовать наиболее часто используемый вид окна - прямоугольник, с возможностью добавлять внутрь перегородки, удалять грани и притютюхивать на их место арку..
можно просто несколько шаблонов сделать - простой прямоугольник, прямоугольник с аркой, ну и что там ещё
ещё тебе нужно уметь изменять ширину граней... а уголки двух граней, которые стыкуются, всегда равны?

Цитата(lifrost @ 30.3.2011, 10:59) *
Кстати, есть ещё идея со сигналами/слотами...

да, хорошая идея) эт чтоб избавиться от глобальных переменных, как я понимаю?
можно и класс сцены занаследовать и двигать итемы в ней, только нужно будет проверять, какой итем под мышью
lifrost Дата 30.3.2011, 9:59
  Кстати, есть ещё идея со сигналами/слотами...Это я про дорисовку полигонов.
Можно ли как-нибудь сделать общий слот в котором будет происходить перерисовка объектов, а объекты в которых происходит изменение позиции будут слать сигнал с новыми данными в слот..... Что-то типа того, было бы не плохо, но я вообще без понятия реально ли это реализовать.
lifrost Дата 30.3.2011, 9:28
 
Цитата(abc @ 29.3.2011, 22:19) *
супер окна тоже не запускаются :) ставил бесплатную версию
написал-таки крутящийся-растягивающийся-двигающийся полигон. могу признать, что с кручением намучился :)
крутится за середину верхней и середину нижней граней
[attachment=1335:WD.zip]
теперь хорошо бы сделать сетку и научиться привязывать итемы к ней


Но итемы же не привязаны друг к другу =(, т.е. где окно? ))

Блин, жалко что ты не можешь посмотреть те проги.....
Посмотри....я вот наделал (Реализация с Полигонами) - Constructor-> newWindow. Реализацияя с Пэйнтом (Constructor->new Arc, так же добавить импост Constructor->Vertical Glume). Но в первом варианте дорисовка происходит только если кликнуть по итему. А во втором не о чем то что нельзя доавить к примеру 2а или три импоста (перегородки)

Скачай, посмотри. Файл 500кб, поэтому не залился на форум.
http://zalil.ru/upload/30765637
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 18:44