Название: Рисование для чайников Отправлено: Dkrav от Февраль 02, 2011, 15:20 Очень хочу понять как же рисовать в QT.
Никак не могу понять чего он от меня хочет. Как связать визуальные элементы на форме. Нужна реализация очень простого примера. Есть форма. на ней кнопочка и объект QGraphicsView. Так вот хочу сделать так чтобы при нажатии на кнопку на QGraphicsView появилась линия. PS. Пришел с Делфи. Там это делается одной строчкой. Тут уже перечитал кучу документации пересмотрел кучу примеров, но концепции так и не понял. PPS: Можете обзывать кем угодно - но после того как покажете готовый проект ;) Название: Re: Рисование для чайников Отправлено: _govorilka от Февраль 02, 2011, 15:48 Возьми вот эту книжку:
http://hzsystem.googlecode.com/files/qt45x.djvu (http://hzsystem.googlecode.com/files/qt45x.djvu) Думаю тебе поможет. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 02, 2011, 18:01 Спасибо за книжку. Занятная. Но это всё я уже читал. В книге все примеры построены на создании элементов непосредственно в тексте программы. Меня же интересует использование UI файла созданного в QT Creator'е.
Название: Re: Рисование для чайников Отправлено: _govorilka от Февраль 02, 2011, 18:46 Спасибо за книжку. Занятная. Но это всё я уже читал. В книге все примеры построены на создании элементов непосредственно в тексте программы. Меня же интересует использование UI файла созданного в QT Creator'е. Там в 45 главе описано создание прототипов. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 02, 2011, 18:56 Всю естественно не прочитал. Ибо не электроник ::)
И в готовых примерах которые идут с QT всё построение тоже ориентировано на работу в тексте программы. :( Да и что имеется в виду под "хорошо выучить С++"? Моих знаний достаточно для реализации задуманных алгоритмов. Проблемы именно с GUI. Название: Re: Рисование для чайников Отправлено: panAlexey от Февраль 02, 2011, 19:09 Проблемы именно с GUI. Лентяй . Название: Re: Рисование для чайников Отправлено: _govorilka от Февраль 02, 2011, 19:33 Тот что в книге описано про Qt Designer, полностью сопдает с тем. что есть есть сейчас в Qt Creator. Просто ассистент и дизайнера стали частью Qt Creator и как отдельные проекты практически не развиваются.
Файлы *.ui - это xml описывающий какие графические элементы нужно создавать и с какими параметрами. Файлы можно править в блокноте (некоторые возможности uic из Designer'а не доступны). На основе этих файлов UIC генерирует *.h файл, который затем подключается к проекту и компилируется вместе с ним. Его содержимое можно посмотреть в папке с obj файлами. В генериуемом хедере объявляется класс Ui::*..., все контроли, которые ты накидаешь в дизайнере будет членами этого класса. В классе, форму которого ты правишь, добавлениется переменная с именем ui (можно переименовать на любую другую). В этом примере есть использование Ui: examples/widgets/stylesheet. Также есть использование страниц стилей. Механизм UI очень похож на Delphi 7, только там создержимое DFM отправлется в ресурсы exe файла, а его обработка происходит при каждом вызове программы. Название: Re: Рисование для чайников Отправлено: lit-uriy от Февраль 02, 2011, 20:26 Очень хочу понять как же рисовать в QT. Графический объект (линию) нельзя нарисовать в дизайнере. Да и в Дельфи тоже (в нём надо было программно на канве рисовать)Так вот хочу сделать так чтобы при нажатии на кнопку на QGraphicsView появилась линия. Меня же интересует использование UI файла созданного в QT Creator'е. Здесь концепт другой, рисуешь на сцене (QGraphicsScene), а представление (QGraphicsView) представляет часть сцены или её всю. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 02, 2011, 23:46 Может я и лентяй, но для меня дикость тратить много времени на формочки, кнопочки и их взаимодействие. Это дело программной оболочки. Заказывают не кнопочки, а функционал. Потому то мне и не охота сначала намаятся, а потом понять что всё делал "через задницу" (извините мой французский ::) ) Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 02, 2011, 23:51 Очень хочу понять как же рисовать в QT. Графический объект (линию) нельзя нарисовать в дизайнере. Да и в Дельфи тоже (в нём надо было программно на канве рисовать)Так вот хочу сделать так чтобы при нажатии на кнопку на QGraphicsView появилась линия. Меня же интересует использование UI файла созданного в QT Creator'е. Здесь концепт другой, рисуешь на сцене (QGraphicsScene), а представление (QGraphicsView) представляет часть сцены или её всю. Да в Дельфе рисовалось и рисуется на канве. И подход очень простой :) Вот в том то и вопрос как привязать QGraphicsScene к QGraphicsView уже описанному на форме. Название: Re: Рисование для чайников Отправлено: ieroglif от Февраль 03, 2011, 05:17 http://www.prog.org.ru/topic_13567_0.html
з.ы. всё равно лентяй :P Название: Re: Рисование для чайников Отправлено: lit-uriy от Февраль 03, 2011, 07:58 >>Вот в том то и вопрос как привязать QGraphicsScene к QGraphicsView уже описанному на форме.
Читай тут (http://doc.crossplatform.ru/qt/4.6.x/graphicsview.html) Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 03, 2011, 12:53 Как я посмотрю тут все знают как оно теоретически должно работать, но практически не применяет.
Вот что я успел для себя накопать и реализовать ;) помоему это самый простой вариант из всего что я видел Код: void MainWindow::on_pushButton_clicked() Название: Re: Рисование для чайников Отправлено: Igors от Февраль 03, 2011, 15:53 Забомбили теорией :) Попробую своими словами и попроще
Так вот хочу сделать так чтобы при нажатии на кнопку на QGraphicsView появилась линия. Рисование может вызываться в любой момент и никак не связано с нажатием кнопки. Поэтому QGraphicsView должен каким-то образом знать рисовать ему линию или нет. Простейший способ - завести в нем член класса данные/флажок. Если установлен - значит рисовать линию. При нажатии кнопки этот флажок взводится (обычно через сигнал). При нажатии др. кнопки может (например) сбрасываться. Ну не забыть repaint чтобы обновить изображение. Вот и все.Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 03, 2011, 16:08 Как-то через чур за мудро :) Нанять художника и человека который бы его будил :D
В любом случае всем спасибо :) Если кто-то может предложить более простой способ, чем тот что я уже реализовал - милости просим :) ато рисовать на Лабелах это для меня как-то совсем прикольно ;D Название: Re: Рисование для чайников Отправлено: panAlexey от Февраль 03, 2011, 22:53 Проблемы именно с GUI. Лентяй . слюнтяй. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 04, 2011, 11:49 А еще наши прапра.....прадеды в шкурах ходили и палками огонь добывали ;D
--------------> Лес там - раз по делу сказать нечего :P Название: Re: Рисование для чайников Отправлено: developer от Февраль 04, 2011, 12:13 ;D ;D ;D ;D
Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 04, 2011, 13:00 а за что в говорилку сбросили? :)
Название: Re: Рисование для чайников Отправлено: Пантер от Февраль 04, 2011, 13:03 А не нужно было? Я так не думаю.
Название: Re: Рисование для чайников Отправлено: panAlexey от Февраль 04, 2011, 13:38 Я недавно деда похоронил, он всю войну прошел.
Все это время жил с осколком в ноге и ни одной жалобы не слышали от него. А тут блин вылезло дитя кока-колы с мега проблемой... Как минимум стыдно должно быть. Название: Re: Рисование для чайников Отправлено: Пантер от Февраль 04, 2011, 13:40 panAlexey, соболезную, у самого деду на прошлой неделе 40 дней было. Но не стоит обозляться и изливать это на форуме.
Ветку потом потру. А можно и вообще её рубануть, не несет она ничего полезного. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 04, 2011, 14:05 Потереть надо.
Вопрос был задан абсолютно конкретный. А свои точки зрения на жизнь оставляйте при себе. И давать оценку человеку, которого в глаза не видел только потому, что он что-то делает не так как ты - совсем не красиво. Да я не хвастаюсь тем сколько тысяч строк кода в моей программе. И сколько % из этих строк реально что-то делают. А не просто писать ради писания. Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 04, 2011, 18:01 А для тех кто говорил, что без игры с классами сделать ничего нельзя и надо строго действовать по книжкам - вот :)
Код: void MainWindow::on_Graph_clicked() Название: Re: Рисование для чайников Отправлено: Igors от Февраль 04, 2011, 19:59 А для тех кто говорил, что без игры с классами сделать ничего нельзя и надо строго действовать по книжкам - вот :) Завидую Вашей молодости и непосредственности :)Код: void MainWindow::on_Graph_clicked() Название: Re: Рисование для чайников Отправлено: Dkrav от Февраль 05, 2011, 14:34 Завидую Вашей молодости и непосредственности :) А кто сказал что я молодой? ;D Название: Re: Рисование для чайников Отправлено: ieroglif от Март 11, 2011, 03:05 Завидую Вашей молодости и непосредственности :) А кто сказал что я молодой? ;D "блондинко" - это состояние В голове, а не НА ней :P з.ы. раз уж в говорилку сбросили =) Название: Re: Рисование для чайников Отправлено: qwerty_ от Сентябрь 12, 2011, 17:18 Код: void MainWindow::on_pushButton_clicked(){ |