Название: Рисование фигур по нажатию клавиши (Решено) Отправлено: sanaforewer от Март 18, 2012, 09:24 Задача:
Нужно рисовать 4 различные геометрические фигуры по нажатию клавишь 1,2,3,4 на клавиатуре компьютера ну я понял что надо создать свой класс переопределить методы virtual void paintEvent(QPaintEvent* pe) virtual void keyPressEvent(QKeyEvent *e); вопрос- рисовать Qt может только из paintEvent, а как передать в этот метод информацию о нажатой клавише из keyPressEvent ? через глобальную переменную? но глобальные переменные не рекомендуется использовать я только только на Qt писать начал как это по уму сделать (как обычно люди делают) подскажите плз Название: Re: Рисование фигур по нажатию клавиши Отправлено: LisandreL от Март 18, 2012, 11:38 Через переменную поле класса.
paintEvent провозируете через update() или repaint() (в чём разница смотрите в справке). Название: Re: Рисование фигур по нажатию клавиши Отправлено: sanaforewer от Март 18, 2012, 13:07 сделал, так конечно лучше смотрится,
но принципиально ничего не изменилось можно ли это как то сделать на уровне механизма событий+наследования? или я пытаюсь усложнить простую задачу? интересно как бы это задачу выполнил опытный программист? Название: Re: Рисование фигур по нажатию клавиши Отправлено: Igors от Март 18, 2012, 13:53 Этот пример (рисование фигур) используется для введения в ООП уже десятки лет :)
В общем случае от Вас требуется создать базовый класс (напр CShape) и породить от него различные CRectangle, CCircle и.т.п. у которых есть свои поля и перекрытые виртуальные методы (paintEvent). По нажатию Вы должны создать нужный класс который "умеет себя рисовать" Эх, если бы все было так просто как в этом примере :) Название: Re: Рисование фигур по нажатию клавиши Отправлено: sanaforewer от Март 18, 2012, 14:16 НЯЯЯЯЯ
СПС! |