QPaintEvent |
Здравствуйте, гость ( Вход | Регистрация )
QPaintEvent |
Гость_Дмитрий_* |
28.4.2009, 23:23
Сообщение
#1
|
Гости |
Хочу нарисовать башенку из прямоугольников определённой высоты в зависимости от положения ползунка (при каждом изменении его положения башенка перерисовывается). Подскажите, пожалуйста, как это реализовать?
|
|
|
igor_bogomolov |
29.4.2009, 2:40
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Накидал элементарный примерчик.
Рисуется квадрат в центре окна. Колесиком мыши изменяются его размеры. Примерно то что просили. Что непонятно, спрашиваете mypaint.h
|
|
|
child_of_bodom |
30.4.2009, 1:05
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 30.4.2009 Пользователь №: 716 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо большое за пример!
А можно ли как-то связать объект QDial или QLCDNumber с событием прорисовки окна, чтобы в зависимости от их параметра N рисовалось N квадратиков? |
|
|
igor_bogomolov |
30.4.2009, 2:03
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
А можно ли как-то связать объект QDial или QLCDNumber с событием прорисовки окна, чтобы в зависимости от их параметра N рисовалось N квадратиков? Да без проблем.Только для начала рекомендую почитать вот это. Для демонстрации переделал свой предыдущий пример. Код компилируемый. paint.h
main.cpp
Сообщение отредактировал igor_bogomolov - 30.4.2009, 2:27 |
|
|
child_of_bodom |
3.5.2009, 21:07
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 30.4.2009 Пользователь №: 716 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо большое! Праздники тут подвернулись, как-то руки не дошли всё испробовать. Всё работает просто супер. Вот только вопросы всё накапливаются и накапливаются... Если я снова хочу прорисовать новую фигуру, а старую удалить, то как это делать? Есть ли такая функция, которая удаляет с окна всё ранее нарисованное?
И как делать анимацию как в последнем сообщении? |
|
|
kwisp |
3.5.2009, 22:38
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Спасибо большое! Праздники тут подвернулись, как-то руки не дошли всё испробовать. Всё работает просто супер. Вот только вопросы всё накапливаются и накапливаются... Если я снова хочу прорисовать новую фигуру, а старую удалить, то как это делать? Есть ли такая функция, которая удаляет с окна всё ранее нарисованное? рисуйте поверх ничего не удаляя и всё естественно с самостоятельной отрисовкой фона. этож гиф! Сообщение отредактировал kwisp - 3.5.2009, 22:39 |
|
|
child_of_bodom |
3.5.2009, 23:27
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 30.4.2009 Пользователь №: 716 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
igor_bogomolov |
3.5.2009, 23:47
Сообщение
#8
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
child_of_bodom, давай по порядку. Тот рисунок который ты выше привел, от куда он? Сам рисовал пирамидку?
Если сам, то по идее, вопросов о том, как происходит перерисовка виджета у тебя быть не должно. а как тогда сделать отрисовку фона? Либо через drawRect, либо через QPalette
Сообщение отредактировал igor_bogomolov - 4.5.2009, 0:19 |
|
|
child_of_bodom |
4.5.2009, 0:30
Сообщение
#9
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 30.4.2009 Пользователь №: 716 Спасибо сказали: 0 раз(а) Репутация: 0 |
Раскрывающийся текст
вот так нарисовал пирамиду, потом хочу нажать кнопку "Start Game!", при этом все элементы с этого окна должны исчезнуть. Раскрывающийся текст
окончательно всё прорисовывается после любого действия: нажать крестик закрытия программы или меню "пуск". хотелось бы рисовалось всё сразу. Раскрывающийся текст
вот так нарисовал пирамиду, потом хочу нажать кнопку "Start Game!", при этом все элементы с этого окна должны исчезнуть. Раскрывающийся текст
окончательно всё прорисовывается после любого действия: нажать крестик закрытия программы или меню "пуск". хотелось бы рисовалось всё сразу.
Причина редактирования: см. справку, указанную в следующем сообщении
|
|
|
igor_bogomolov |
4.5.2009, 0:41
Сообщение
#10
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Справка по кнопкам и тэгам форума
Со switсh ты конечно жестко замутил. Уж больно огромный код получается. Использую хотябы QMap<int, QColor> Сообщение отредактировал igor_bogomolov - 4.5.2009, 1:17 |
|
|
Текстовая версия | Сейчас: 15.1.2025, 19:03 |