QGraphicsRectItem и setPos() |
Здравствуйте, гость ( Вход | Регистрация )
QGraphicsRectItem и setPos() |
lifrost |
30.3.2011, 9:59
Сообщение
#31
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
Кстати, есть ещё идея со сигналами/слотами...Это я про дорисовку полигонов.
Можно ли как-нибудь сделать общий слот в котором будет происходить перерисовка объектов, а объекты в которых происходит изменение позиции будут слать сигнал с новыми данными в слот..... Что-то типа того, было бы не плохо, но я вообще без понятия реально ли это реализовать. |
|
|
abc |
30.3.2011, 11:49
Сообщение
#32
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
в реализации new Arс ты столкнулся с той же проблемой, что и я - когда при скашивании граней, они теряют параллельность своих линий. А почему нельзя добавить больше одной перегородки?
в реализации newWindow можно раздвигать и без кликов - глобальные переменные спасае) а моя грань поможет сделать сложную фигуру, это может быть одной из возможностей программы... чтоб уметь нарисовать совершенно косое кривое извращение я думаю, что нужно как раз качественно реализовать наиболее часто используемый вид окна - прямоугольник, с возможностью добавлять внутрь перегородки, удалять грани и притютюхивать на их место арку.. можно просто несколько шаблонов сделать - простой прямоугольник, прямоугольник с аркой, ну и что там ещё ещё тебе нужно уметь изменять ширину граней... а уголки двух граней, которые стыкуются, всегда равны? Кстати, есть ещё идея со сигналами/слотами... да, хорошая идея) эт чтоб избавиться от глобальных переменных, как я понимаю? можно и класс сцены занаследовать и двигать итемы в ней, только нужно будет проверять, какой итем под мышью |
|
|
lifrost |
31.3.2011, 7:09
Сообщение
#33
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
в реализации new Arс ты столкнулся с той же проблемой, что и я - когда при скашивании граней, они теряют параллельность своих линий. А почему нельзя добавить больше одной перегородки? в реализации newWindow можно раздвигать и без кликов - глобальные переменные спасае) а моя грань поможет сделать сложную фигуру, это может быть одной из возможностей программы... чтоб уметь нарисовать совершенно косое кривое извращение я думаю, что нужно как раз качественно реализовать наиболее часто используемый вид окна - прямоугольник, с возможностью добавлять внутрь перегородки, удалять грани и притютюхивать на их место арку.. можно просто несколько шаблонов сделать - простой прямоугольник, прямоугольник с аркой, ну и что там ещё ещё тебе нужно уметь изменять ширину граней... а уголки двух граней, которые стыкуются, всегда равны? Кстати, есть ещё идея со сигналами/слотами... да, хорошая идея) эт чтоб избавиться от глобальных переменных, как я понимаю? можно и класс сцены занаследовать и двигать итемы в ней, только нужно будет проверять, какой итем под мышью 1) А как добавить больше одной перегородки в реализации new Arc...? 2) В new Window - я не понял как дорисовать без кликов (( 3) Углы всегда равны. На счет сигнал/слот, ну во-первых, избавиться от глобальных переменных, а во-вторых, чтобы другие классы видели изменения точек - тока я вообще без понятия как это реализовать )) Я пробовал множественное наследование, но пока без успешно. Ах, да - на счет ширины граней - это на самом деле не обязательно, я такого просто не видел в других программах, если это тока какая-то фишка будет. Просто с точки зрения производственной реализации это не реально - грани - это же профиль, а он имеет стандартную ширину. |
|
|
abc |
31.3.2011, 9:57
Сообщение
#34
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
я проснулся ночью в поту! я полдня мучился, не знал, как обойтись без глобальных переменных, а ведь это же очевидно - двигать итемы в классе сцены... она будет знать обо всех точках итемов, и всех их перерисовывать... итемам ничего не нужно будет знать друг о друге... я помню, как я в начале нашей работы отвёл тебя от идеи ловить мышь в классе сцены... я, однако, тогда не знал, что квадрат будет составлен из нескольких полигонов, а потом я совершенно не подумал вернуться к твоему изначальному плану.
короче, твой вариант с дорисовыванием по кликам можно доработать... но скашивание всё равно вызовет проблемы, о которых я уже писал по вопросам: 1) а как ты одну добавляешь? это ведь QGraphicsRectItem? 2) ты не понял, как совместно перерисовывать полигоны? или как это сделать без глобальных переменных? если грани имеют стандартную ширину, это облегчает дело, но я ещё хочу обратить твоё внимание, что размеры нашего окна должны быть пропорциональны размерам реального окна |
|
|
lifrost |
31.3.2011, 10:20
Сообщение
#35
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
я проснулся ночью в поту! я полдня мучился, не знал, как обойтись без глобальных переменных, а ведь это же очевидно - двигать итемы в классе сцены... она будет знать обо всех точках итемов, и всех их перерисовывать... итемам ничего не нужно будет знать друг о друге... я помню, как я в начале нашей работы отвёл тебя от идеи ловить мышь в классе сцены... я, однако, тогда не знал, что квадрат будет составлен из нескольких полигонов, а потом я совершенно не подумал вернуться к твоему изначальному плану. короче, твой вариант с дорисовыванием по кликам можно доработать... но скашивание всё равно вызовет проблемы, о которых я уже писал по вопросам: 1) а как ты одну добавляешь? это ведь QGraphicsRectItem? 2) ты не понял, как совместно перерисовывать полигоны? или как это сделать без глобальных переменных? если грани имеют стандартную ширину, это облегчает дело, но я ещё хочу обратить твоё внимание, что размеры нашего окна должны быть пропорциональны размерам реального окна Так =). Все-таки нужно наследоваться от сцены, добавить нужно кол-во полигонов и двигать их? На счет скосов, пока можно обойтись без этого. В итоге: получается забить на все предыдущие варианты? 1) уже понял. 2) да я не понял как совместно перерисовать итемы без кликов. Хотя эти два вопроса можно выкинуть раз все таки наследоваться от сцены )) Там кстати и текст с размерами будет проще вставить...ах да вот на счет масштабирование реальный размер и нарисованный - вот тут реально сложновато все про масштабировать... |
|
|
abc |
31.3.2011, 11:43
Сообщение
#36
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
2) задаёшь новые координаты вершин, затем устанавливаешь новые полигоны для итемов, в которых эти вершины участвуют
а я вижу пользование этой программой так: передо мной бумажка, на которой расписаны размеры окна. я в программе ввожу эти размеры, а программа их пропорционально уменьшает и рисует окно.. Зачем мне колбасить окно мышью, если заранее известны размеры? Створки в окно можно добавлять уже вручную... а можно и створки по заданным размерам автоматом рисовать. ну, это с прямоугольным окном. более сложные детали, наверное, пусть пользователь сам рисует |
|
|
lifrost |
1.4.2011, 7:33
Сообщение
#37
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
2) задаёшь новые координаты вершин, затем устанавливаешь новые полигоны для итемов, в которых эти вершины участвуют а я вижу пользование этой программой так: передо мной бумажка, на которой расписаны размеры окна. я в программе ввожу эти размеры, а программа их пропорционально уменьшает и рисует окно.. Зачем мне колбасить окно мышью, если заранее известны размеры? Створки в окно можно добавлять уже вручную... а можно и створки по заданным размерам автоматом рисовать. ну, это с прямоугольным окном. более сложные детали, наверное, пусть пользователь сам рисует Вот если бы было все так просто, но во всех программах сделано так что можно и вводить и двигать размер окна.... 2) это ты написал про реализацию для одного класса, а если каждый полигон в своем классе, то как тогда его перерисовать, у меня чет не вышло Попробовал я унаследоваться от сцены и рисовать там полигоны, мне чет эта затея теперь не нравиться.... |
|
|
abc |
1.4.2011, 11:52
Сообщение
#38
|
Участник Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: 4 |
пусть двигается, но изначально строй окно по заданным размерам, пожааааалуйста)
вот двигаю полигоны в классе сцены красота) WDesigner.zip ( 30,64 килобайт ) Кол-во скачиваний: 198 |
|
|
lifrost |
1.4.2011, 12:01
Сообщение
#39
|
Студент Группа: Участник Сообщений: 38 Регистрация: 4.3.2011 Из: Миасс Пользователь №: 2468 Спасибо сказали: 0 раз(а) Репутация: 0 |
пусть двигается, но изначально строй окно по заданным размерам, пожааааалуйста) вот двигаю полигоны в классе сцены красота) WDesigner.zip ( 30,64 килобайт ) Кол-во скачиваний: 198 Ок, изначально размеры, потом можем двигать. Да - вот от теперь вижу что от сцены - все круто ) |
|
|
Текстовая версия | Сейчас: 26.11.2024, 0:45 |