Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/34: Рейтинг темы: голосов - 34, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 19
1

Графика в С++ в принципе

16.11.2013, 14:06. Показов 6292. Ответов 59
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я новичек. Вернее сказать: очень новичек. Решил изучить С++ и попробовать программирование. В качестве хобби. Странное хобби конечно, но так. У моей жены,например, хобби расчищать снег перед моей машиной,даже когда это мне не нужно и никто это странным не находит. Так чем мое хобби хуже? Я нашел кучу литературы. Одну книгу, С. Прата, даже дочитал до конца (остальные просмотрел). Все понял (или мне так показалось), решил несколько упражнений разной сложности, программируя в консольном приложении. Поскольку это хобби, я решил решить сразу большую задачу: написать приложение для составления различных протоколов, актов, результатов замеров и.т.д. с архивацией, выводом на печать, возможностью корректировки и.т.д. Поскольку я новичек, то решил, что это вообщем не сложно и ООП, как раз для этого подходит. И тут возникла первая трудность, которую я не могу решить уже две недели. А именно начало. По мысли все должно начинаться так:при запуске программы--цветная заставка с кнопками меню, затем выпадающее меню и дальше... как бог пошлет. Но при запуске консольного приложения выскакивает маленькое черное окошечко в котором выполняется программа. И как в нем реализовать мои грандиозные планы неясно. Я задавал этот вопрос на разных форумах и все ответы можно разделить на два:1. Это как то по другому 2.Иди в жопу (учи мат.часть). Но влюбой книге (мат.части) сказано: прочитай меня без графики, а графика это уже проще. Копаясь в интернете я выяснил, что есть две возможности:1.Преревести экран в графический режим и рисовать с помощью функций. 2. Использовать OpenGL, DirectX, Win32API и.т.д. По поводу первого способа: я понял, что это устаревший вариант и сейчас так сделать нельзя. По повод второго способа, я столкнулся с рядом трудностей: во-первых мой компилятор(IDE) (code::blocks) поддерживает не все варианты, т.е. проекты такие есть, но проблемы с библиотеками и заголовочными файлами, а менять code::blocks на что-нибудь другое не хотелось бы. Во вторых я так и не нашел соответствующей литературы, где бы четко и ясно (как в учебниках по С++) разъяснялось, как это делается в ПРИНЦИПЕ, с самого начала. Если бы кто-нибудь из опытных(или не очень) гуру пояснил бы мне с чего начать(или начальную литературу) или подсказал иной вариант или способ, я был бы очень рад и благодарен.

С уважением Новичок
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2013, 14:06
Ответы с готовыми решениями:

Загрузка изображений и файлов в принципе
Добрый день! Столкнулся с проблемой нахождения картинки на компьютере. Вот строка кода с...

Не могу разобраться в принципе работы цикла
1. как в данном случае работает цикл for без третьего условия? for(i=0; s ; ) { for(;s&&s=='...

Не могу разобраться в принципе работы цикла
1. как в данном случае работает цикл for без третьего условия? for(i=0; s ; ) { for(;s&&s=='...

Ищу курсы/книги по ИИ в принципе и нейросетям в частности
Недавно я решил на досуге углубить свои знания в области ИИ дальше понимания принципа работы...

59
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
16.11.2013, 23:26 21
Author24 — интернет-сервис помощи студентам
Rudnik, Графический интерфейс он просто дает возможность менять параметры настройки программы и запускать программу несколько раз на выполнение. Я от не создал еще ни одного окошка, ну в принципе консольную программу можно запускать каждый раз с разными настройками. Просто создай файл текстовый в него запиши настройки и запускай программу, программа должна считать настройки их этого файла, инициализироваться так сказать отработала завершила свою работу. Ты берешь открываешь этот текстовый файл и меняешь его содержимое, ну это настройки программы, снова запускаешь программу.

Гуи тут догадываться не нужно явно видно дает возможность менять настройки програмы, скажим так редакритует этот файл используя меню и запускает выполнение программы, походу поддерживает несколько потоков в одном потоке сама программа выполняется с менюшками которые редактируют этот файл, и этот поток создает еще один поток в котором отрабатывает основная программа которая читает настройки из файла, настройки которые редактируются с помощью менюшек.

Ну и что тут сложного, создай файл с настройками и саму программу которая будет читать эти настройки и просто запускай хотябы саму программу.

Это вообще то мое представление ГУИ да и вообще ГУИ ото обычные формы и кнопочки по нажатию которых что нибуть происходить, ну в моем примере ГУИ должно быть в виде формы, что бы можно было ее заполнить и отредактировать настройки самой программы.

Добавлено через 5 минут
Вообще если для себя пишешь программы, то можно за ГУИ не беспокоится, достаточно текстового файла в котором собрать все настройки программы.
Гуи я так считаю нужны для таких программ которые будут создаваться для кого нить, что б он смог разобраться и сам легко поменять настройки. Те программы что для себя пишешь, там ГУИ и нафиг не нужны!!!

Добавлено через 49 секунд
Так что не заморачивайся, у тебя программа должна работать сначала без ГУИ, а затем уже прикрутишь.

Добавлено через 47 секунд
Да как целое оно не будет работать без ГУИ, но как набор программ, может работать по отдельности.
2
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
16.11.2013, 23:35 22
Цитата Сообщение от castaway Посмотреть сообщение
а это можно реализовать на каком-нибудь другом языке?
Цитата Сообщение от Tulosba Посмотреть сообщение
И как Вам представить результат?
Ребята, я очень рад, что вы поняли о чем идет речь. Да, ни один конечный автомат с этой задачей не справится.

Не по теме:

Мы с приятелем уже в годы мехматской юности это с удовольствием выяснили, и вот я прихожу к нему с бутылкой и с воплем - "Я знаю. как сделать программу, вычисляющую корень из двух!" Он меня просто выгнал вон. Вместе с бутылкой. К сожалению, в дальнейшем мы к этой теме не возвращались, и уже не возвратимся по причине отсутствия моего приятеля на этом белом свете. А у меня была такая идея. Вот, стоит большая ЭВМ ЕС-1052. И девчонки тащут к ней магнитные ленты. Столько, сколько она через свой пультовой машинописный интерфейс попросит.

Т.е. автомат получается - бесконечный.
И дело в том еще, что представление любого иррационального числа в виде десятичного, это - процесс, а не некий конечный результат. Для процесса (если он не цикличен) необходима бесконечная память. Вот МТ этой памятью обладает. И алгоритм прост до смешного. Для той же МТ он займет не более 10000 строк. Да и любой язык, дай ему бесконечную память, сделает все это даже ловчей. На том же Си можно, думаю в сотню строк уложиться. Нас же учили в школе (как вас - не знаю, а меня учили) извлекать корни не то столбиком, не то ступенькою. Алгоритм - незамысловатый, не помню уж какой. Дело было только в количестве бумаги...

Добавлено через 4 минуты

Не по теме:

Простите, но это уже не программирование. Это даже ближе к философии, чем к математике. И не надо забывать, что Эммануила Кантора доконало все-таки МДП.

1
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
16.11.2013, 23:37 23
Цитата Сообщение от Rudnik Посмотреть сообщение
написать приложение для составления различных протоколов, актов, результатов замеров и.т.д. с архивацией, выводом на печать, возможностью корректировки и.т.д.
Тут от явно видно что можно создать само приложение (приложение для составления различных протоколов) ну и настроечный файл в котором будет задаваться текущий протокол, от для начала создай просто консольное приложение для кокого нибуть протокола допустим протокола№1, запиши в файл настройки все исходные данные программы и запусти программу, все она работает, дальше делай измени файл настройки добавь какой нить другой протокол например протокол №2, научи программу что бы она понимала что сейчас нужно обработать протокол №2, потом научи программу что бы она понимала различные акты, результаты измерения, просто научи программу читать файл настроек! Добавь какие нить флаги в этой файл настроек, нужна ли архивация или нет, нужно ли выводить на печать или нет, просто научи программу общаться с пользователем через файл.

А дальше, а дальше ты будешь знать как работать с программой через файл, ну а для обычных пользователей создашь потом ГУИ менюшки и всякую фигню, там уже не сложно будет ГУИ заставить редактировать текстовый файл настроек. В общем это мое ИМХО, возможно я ошибаюсь, но походу нет.
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
16.11.2013, 23:43 24
Цитата Сообщение от Байт Посмотреть сообщение
Ребята, я очень рад, что вы поняли о чем идет речь.
Так всё же, посчитать или отобразить? Можно ведь и уравнения в символьной форме решать в каком-нибудь маткаде. А уж представить корень из двух как https://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{2} проще пареной репы. И это будет, между прочим, точный результат.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 00:22 25
Цитата Сообщение от Rudnik Посмотреть сообщение
Значит все таки лучше WinAPI. Сейчас установлю QT.
WinAPI - только windows, Qt - кроссплатформенность.
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
17.11.2013, 00:59 26
Цитата Сообщение от alsav22 Посмотреть сообщение
WinAPI - только windows
Не считая того, что это ужас что такое! Писывали, писывали на ВинАпи! Не застрелился только от того, что все-таки есть обертки.

Добавлено через 16 минут
Цитата Сообщение от Tulosba Посмотреть сообщение
Так всё же, посчитать или отобразить?
Не думаю, что вы не поняли, о чем идет речь. Впрочем, плевать. Много ли вы знаете трансцендентных (не алгебраических, которые являются решениями простых уравнений) чисел? Я знаю 2 таких числа - ПИ и Е (ну и все им кратные). И доказательства их несводимости к такой ерунде, как sqrt(2) занимает несколько серьезных страниц. Но их же значительно больше, чем всех остальных. А мы их практически никого не знаем в лицо. Казалось бы - обычные числа. Ан - инопланетяне.
Господа, простите за бред. Ни на чем не настаиваю. Если Рамануджан записывал все натуральные числа себе в друзья, то мне остались только те, которые не пересчитываются.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
17.11.2013, 06:28 27

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Графический интерфейс он просто дает возможность менять параметры настройки программы и запускать программу несколько раз на выполнение.
дальше не читал...
Цитата Сообщение от Байт Посмотреть сообщение
Не считая того, что это ужас что такое! Писывали, писывали на ВинАпи! Не застрелился только от того, что все-таки есть обертки.
Вперед писать на Visual Basic + WinAPI, это такая веселуха :D



Цитата Сообщение от Rudnik Посмотреть сообщение
Поскольку это хобби, я решил решить сразу большую задачу
Можете поставить себе задачу более подходящую по текущим Вашим знаниям.

Цитата Сообщение от Rudnik Посмотреть сообщение
И тут возникла первая трудность, которую я не могу решить уже две недели.
Поверьте, эта проблема чуть более чем пустышка по сравнению с теми, что Вас ожидают.

Цитата Сообщение от alsav22 Посмотреть сообщение
WinAPI - только windows, Qt - кроссплатформенность.
А кому нужна эта кроссплатформенность, вот в чем вопрос. (c) Саня Недошекспир
Не думаю, что новичку в программировании вообще нужен кроссплатформенный код, да что там говорить о новичках, если большая часть софта пишется под конкретную платформу.

Я бы посоветовал повозиться в консоли и замахиваться на ГУЙню только после основательного изучения языка, да и если писать "крупный" проект, то знания лишь языка и библиотек будет не достаточно.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 07:34 28
Цитата Сообщение от Croessmah Посмотреть сообщение
А кому нужна эта кроссплатформенность, вот в чем вопрос.
Я только к тому это написал, чтобы ТС понял, что Qt - это не WinAPI.
Цитата Сообщение от Rudnik Посмотреть сообщение
Одну книгу, С. Прата, даже дочитал до конца (остальные просмотрел). Все понял (или мне так показалось), решил несколько упражнений разной сложности, программируя в консольном приложении.
Для Qt вполне достаточно, там и своего хватает. Макс Шлее. "Qt 4.5. Профессиональное программирование на C++ (2010)" и вперёд, к большой задаче.
1
Tulosba
17.11.2013, 08:37
  #29

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Макс Шлее. "Qt 4.5. Профессиональное программирование на C++ (2010)" и вперёд, к большой задаче.
Имхо, дурацкая книга. Почти как Архангельский для всяких буилдеров. Буков много, смысла мало.

0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.11.2013, 09:25 30
Rudnik, с такими глобальными вопросами будет на долго.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
17.11.2013, 09:28 31
Цитата Сообщение от Tulosba Посмотреть сообщение
Имхо, дурацкая книга. Почти как Архангельский для всяких буилдеров. Буков много, смысла мало.
Книга, как книга... Насколько знаю, по Qt вся литература такая. Чтобы начать, большего и не нужно. Остальное в инете (документация и пр.).
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 19
17.11.2013, 18:46  [ТС] 32
Господа! Всем спасибо за ответы. Но кое чего, я все таки не понял. Наверняка, это из-за того что я немного(а может и не немного) туповат. Сейчас объясню. Я уже немного разобрался в С++. В такой степени, что могу решить практически любую бытовую задачу. Красиво, некрасиво, это второй вопрос. Но только в консольном приложении. Поскольку на меня ничто не давит, я могу себе позволить решение практических заданий. это мне кажется интересным. Я работаю испытателем на заводе. Выглядит это примерно так: я беру изделие и бью его, окунаю, нагружаю высоким напряжением и.т.д. Это называется испытаниями. По результатам этих действий, я готовлю протокол. Ради праздного интереса, я решил сделать программу, которая готовит любые документы для лаборатории(место где я работаю). Представляю себе это так: заставка с открывающимся меню с запросом какой документ нужен, далее я ввожу результаты замеров и программа готовит документ (это в упращенном виде). Теоретически протокол можно описать как класс: есть данные(массивы, строки, символы, численные данные различных форматов и дак далее) и есть ряд действий которые с протоколом можно проводить (печатать, архивировать, вносить изменения и.т.д) т.е. методы класса. В общем такова задумка. Реализация этой идеи носит скорее учебный характер(в процессе я многое наверняка узнаю, пойму). А применимость этой задачи к моей работе делает ее интересной. Руководство от меня этого не требует и даже не знает об этом, так что я "вольный стрелок" и это еще один плюс.
Но все уперлось в графическую часть, я даже не понимаю как к этому подступиться. OpenGL, DrectX, WinAPi, GUI, что именно использовать, на какой платформе это лучше, как будет связаны графическая и основная часть программы этого я до сих пор не понял. Вы же как то начинали, т.е. это наверняка где то изложено. И этот барьер я не могу никак перейти. Такое впечатление, что это как то не сложно, но как я не понимаю. Это сейчас, для меня как две реки: я научился плавать в одной, но не знаю, как попасть в другую, и как переходить из одной в другую. Да... аналогия еще хуже... но как то как. Хорошо:ответьте мне на вопрос:как это было у Вас?
0
503 / 352 / 94
Регистрация: 22.03.2011
Сообщений: 1,112
17.11.2013, 18:49 33
Много букв. Вы скачали Qt? Прочитали мануал? Запустили пример? Посмотрели код? (Вот так вот и было)
2
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
17.11.2013, 22:32 34
Цитата Сообщение от Rudnik Посмотреть сообщение
И этот барьер я не могу никак перейти.
Да не стойте вы так перед ним! Начинайте! Есть пословица - "Самая длинная дорога начинается с первого шага" (это по-китайски, вольный перевод - "Дорогу осилит идущий") Вам все уже сказали. Ждем шагов ваших конкретных и конкретных же вопросов.
Цитата Сообщение от Rudnik Посмотреть сообщение
как это было у Вас?
А вот так и было! (почти цитирую stima)
Знаете, даже некоторые фривольные аналогии напрашиваются...
0
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 19
18.11.2013, 15:02  [ТС] 35
Всем еще раз огромное спасибо. Скачал QT Creator 1.2.1. Сейчас попробую.
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
18.11.2013, 15:46 36
Цитата Сообщение от Rudnik Посмотреть сообщение
Скачал QT Creator 1.2.1. Сейчас попробую.
Это не обязательно. Это среда, а нужно саму Qt скачать, а подключить её можно и в Code::Blocks.
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
18.11.2013, 17:53 37
Цитата Сообщение от Rudnik Посмотреть сообщение
Хорошо:ответьте мне на вопрос:как это было у Вас?
У меня еще этого не было, да нашо он тебе нужен? У тебя что уже есть готовая рабочая программа без ГУИ? Я так понял нету. Любую прикладную программа пишется без ГУИ, мой тебе совет забей ты на ГУИ. В самом конце когда уже будет готовая рабочая программа тогда уже прикрутишь.

Добавлено через 2 минуты
Цитата Сообщение от Rudnik Посмотреть сообщение
Представляю себе это так: заставка с открывающимся меню с запросом какой документ нужен, далее я ввожу результаты замеров и программа готовит документ (это в упращенном виде).
Ну так для этих задач ГУИ и нафиг не нужен, в файл данные введи запусти программу и пусть она результат выведет в файл и все. Чо вы все так сразу на ГУИ помешались?
0
0 / 0 / 1
Регистрация: 23.10.2013
Сообщений: 3
19.11.2013, 17:50 38
http://yuan.at.tut.by - Страничка с графической библиотекой, примерами и т.д.
Работает от Win 95 до Win 7 как минимум. Скомпилировано на Борланде 5.2
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
19.11.2013, 19:30 39
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от ninja2 Посмотреть сообщение
мой тебе совет забей ты на ГУИ
Ну а повнимательнее прочитать, чего хотит ТС - нет ни времени ни сил?
Цитата Сообщение от Rudnik Посмотреть сообщение
для составления различных протоколов, актов, результатов замеров и.т.д. с архивацией, выводом на печать, возможностью корректировки и.т.д.
Ему ж БД нужна! И вы предлагаете как при каменном веке с БД работать на консоли? Сама идея использования Базы Данных уже предполагает графический интерфейс. Или как? Покажи запись 585? И меню "Нажми 1, чтоб скорректировать, 2, чтоб удалить, 3, чтоб добавить?"
Что ж ты вполне креативного ТС в пещеру засовываешь, да еще невыделанную шкуру на него пытаешься напялить?
4
0 / 0 / 0
Регистрация: 06.09.2013
Сообщений: 19
28.11.2013, 18:07  [ТС] 40
Это опять я. Я скачал QT5 и книгу М. Шлее по QT4.5. Много не соответствий. Но я стараюсь. Сейчас столкнулся с проблемой и не как ее не решу. Задача в следующем: сделать окно и закачать в него растровое изображение из другого файла. Это будет заставка. Стал делать по книге. Все отлично до того момента, как записать растровое изображение из файла. Программа в упор не видит моего файла. Все списал из книги. Файл с расширением jpeg поместил в папку с исходниками. Вариант программы ниже (с поими пояснениями). Выводит просто черное окно с названием. Подскажите, что не так, если возможно

#include "mainwindow.h"
#include <QApplication>
#include <QLabel>


int main(int argc, char *argv[])
{
QApplication mainprog(argc, argv);
QWidget mainwin;
QPalette mainpal;

mainwin.setWindowTitle("ЛАБОРАТОРИЯ"); // Название окна
mainpal.setBrush(mainwin.backgroundRole(),QBrush(QPixmap("lab.jpeg"))); //Попытка подключения файла
mainwin.setPalette(mainpal);
mainwin.setAutoFillBackground(true);
mainwin.show();

return mainprog.exec();
}
0
28.11.2013, 18:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2013, 18:07
Помогаю со студенческими работами здесь

Как круг вписать в массив и возможно ли в принципе?
Создал массив данных получил 3D изображение двух четырёхгранников соединённых вместе . хочу в месте...

Можно ли в принципе максимально апгредейдить эту мать
материнка Epox EP-4PEA9(I) (5 PCI, 1 AGP, 2 DDR DIMM, Audio) с чипсетом Intel Brookdale...

Как в принципе передавать картинку в апплет в runtime.
Искал на форуме, не нашел. Задача следующая: апплет должен рисовать у себя в canvas'е картинку....

Вывести top сумм с сортировкой, возможно ли в принципе?
Здравствуйте! Скажите, пожалуйста, данную задачу как-то можно реализовать посредством SQL одним...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru