![]() |
|
|
![]()
|
|
| ss |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
как сделать свободное рисование ,когда пользователь при запущенной программе может выбирать как он хочет рисовать (разные фигуры, линии) а не то, что строго прописано в событии MainWindow::paintEvent . Например прорисовка по нажатию на кнопку (PushButton)
Это сообщение отредактировал(а) ss - 11.7.2013, 21:49 |
|||
|
||||
| Snake174 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 5.10.2011 Где: Miass Репутация: нет Всего: нет |
Подробней опиши задачу.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
ss, в событии paintEvent не прописывается "что рисовать". Там прописывается где необходимо перерисовать (например, в случае затирания части твоего рисунка другим окном при перемещении пользователем последнего). А рисовать ты можешь что угодно. А чтобы это событие приходило не только при затирании области, используй метод QWidget::update(). Например, его можно вызывать по нажатию кнопки, при движении мышки или тупо по таймеру.
|
|||
|
||||
| ss |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
что-то вроде paint'та. Когда есть возможность дорисовывать когда угодно.
вот это " // draw (разные фигуры, линии)" сделать при нажатии на кнопку (в самом обработчике кнопки). Т.Е. к примеру, если builder брать то рисовать на canvas Я хочу сделать змейку. Сама змейка должна прорисовываться с каждым перемещением + возможность появления других графических объектов. Это сообщение отредактировал(а) ss - 12.7.2013, 14:40 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
ss, во-первых, рисуют не на экране, а на виртуальном "холсте" - на массиве пикселей, размещенном в ОЗУ.
во-вторых, при нажатии кнопки не рисуют, а меняют режим (читай, меняют значение переменной) в-третьих, фактически рисуют на холсте при определенных условиях (например, значение определенной переменной + зажатая кнопка мыши + перемещение мыши), а после этого вызывают update у формы, выводящий изображение на экран. Кстати, посмотри на QGraphicView и QGraphicScene. Может быть тебе это больше подойдет. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |