13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
1

Из консольного проекта с++ переделать в ООП с интерфейсом QT

07.11.2015, 14:21. Показов 3120. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Делал на 1 заочном курсе курсовую работу по матрицам на с++ в консольном режиме, все работает.

Однако сейчас, требуют сделать 2 курсовые работы на с++ в объектно-ориентированном стиле и с интерфейсом желательно на QT.

Разрешили для начала свою переделать. Но с интерфейсом и пр/ как работать сказали разбирайся сам.

Мой первый курсовой проект выполнен в функциях. Соответственно нужно перекидывать все в классы. Ок.
А вот как прикрутить интерфейс?
Я мучался ставил Qt cteator и интегрировал его в MVS2010-2015. Алилуя! qt creator (5.5.1) наконец показал мне Hello world. Но что дальше?
Подскажите, в каком направлении смотреть...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2015, 14:21
Ответы с готовыми решениями:

Из консольного проекта с++ переделать в стиле ООП с интерфейсом на QT
Добрый день! Делал на 1 заочном курсе курсовую работу по матрицам на с++ в консольном режиме,...

Использование консольного приложения с интерфейсом командной строки
Всем доброго времени суток Задача состоит из 3 пунктов. 1. Разработать класс "треугольник" для...

Переделать с консольного на визуальный
//--------------------------------------------------------------------------- #pragma hdrstop...

Переделать из консольного варианта
Помогите пожалуйста переделать из этой задачки консольного варианта в не консольный (делфи). Очень...

15
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
08.11.2015, 19:50  [ТС] 2
Не густо.... проект есть, а как прикрутить интерфейс сообразить не могу. Запустил свой консольный проект в VS. Через панель инструментов QT Designer создал форму... сохранил ее, но как я понимаю, он должен еще создать файл класса Ui_forv.h где UI имя адресного пространства.
Может кто-нибудь прольет мне свет на это?
Я выполню без проблем свое задание в консоле. Но как тут быть? Как подключать, как что делать?...
0
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
08.11.2015, 21:00 3
Попробуйте через мастера (с плагином интеграции Qt и в VS должен быть) создать графическое приложение Qt. Там будет видно, какие файлы нужны для интерфейса (.ui, .h, .cpp), а какие создаются автоматически (ui_.h, ui_.cpp). Также будет пример .pro файла для графического приложения (он несколько отличается от консольного).
0
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
08.11.2015, 21:23  [ТС] 4
Цитата Сообщение от OneMoreGres Посмотреть сообщение
Попробуйте через мастера (с плагином интеграции Qt и в VS должен быть) создать графическое приложение Qt. Там будет видно, какие файлы нужны для интерфейса (.ui, .h, .cpp), а какие создаются автоматически (ui_.h, ui_.cpp). Также будет пример .pro файла для графического приложения (он несколько отличается от консольного).
Что-то такого в Visual studio не вижу, там только Qt5>launch disegner, launch linguist, открыть pro файл, остальное недоступно.

печаль.
0
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
08.11.2015, 23:34 5
Приаттачил стандартный графический проект.

А вообще мне для разработки на Qt больше Qt Creator нравится (даже когда на винде сидел). Функций, конечно, поменьше, чем в VS, но основное вроде есть и настроено для разработки Qt'шных приложений. Рекомендую попробовать.
Вложения
Тип файла: zip GuiSample.zip (1.9 Кб, 12 просмотров)
1
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
09.11.2015, 00:52  [ТС] 6
Цитата Сообщение от OneMoreGres Посмотреть сообщение
Приаттачил стандартный графический проект.

А вообще мне для разработки на Qt больше Qt Creator нравится (даже когда на винде сидел). Функций, конечно, поменьше, чем в VS, но основное вроде есть и настроено для разработки Qt'шных приложений. Рекомендую попробовать.
Я с ним мучайся, не работал. Но на днях показал мне наконец Хеллоу ворлд....
Но не пойму как её дальше использовать имея свой консольный проект... Те даже если не переделывать сейчас все в классы, а просто сделать вывод не в консоль, а на лебл и ввод действий на кнопки.
Кое как сам разобрался не без вопросов в с++ в консоли, но тут не предполагаю. Нашёл какую то Книгу по qt, но там темный лес. Несравнимы с консолью...
0
660 / 661 / 106
Регистрация: 29.05.2015
Сообщений: 3,964
09.11.2015, 07:48 7
Наверху есть инфа для новичков, как сделать форму с кнопкой(button) и меткой (label), чтобы по нажатию кнопки в метке появлялось строка, хоть "Hello World". Qt - руководство для новичков

Дальше элементарно. В самом простом случае: для ввода в программу lineedit, для вывода label, работа программы осуществляется по нажатию кнопки. Это немного отличается от консоли, но не принципиально. То же програмирование. В main.cpp менять ничего не надо, код пишется в widget.cpp.

Классы из функций делать необязательно. В GUI старые добрые функции работают точно так же. Разница только во вводе в программу и выводе из неё - в графике он другой, нежели в унылой консоли. Зато возможности! Например, таблица с тысячами строчек, по которой можно двигаться вверх-вниз, вправо-влево - посмотрел бы я на её реализацию в консоли... ну и так далее. Дерзай.
1
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
09.11.2015, 08:39  [ТС] 8
Цитата Сообщение от alexu_007 Посмотреть сообщение
Наверху есть инфа для новичков, как сделать форму с кнопкой(button) и меткой (label), чтобы по нажатию кнопки в метке появлялось строка, хоть "Hello World". Qt - руководство для новичков

Дальше элементарно. В самом простом случае: для ввода в программу lineedit, для вывода label, работа программы осуществляется по нажатию кнопки. Это немного отличается от консоли, но не принципиально. То же программирование. В main.cpp менять ничего не надо, код пишется в widget.cpp.

Классы из функций делать необязательно. В GUI старые добрые функции работают точно так же. Разница только во вводе в программу и выводе из неё - в графике он другой, нежели в унылой консоли. Зато возможности! Например, таблица с тысячами строчек, по которой можно двигаться вверх-вниз, вправо-влево - посмотрел бы я на её реализацию в консоли... ну и так далее. Дерзай.
Спасибо, сейчас почитаю на работе и вечером попробую.
Насчет функций, сказали переделать в объектно-ориентированный стиль...
Да, таблица в консоли не сравнится с графической)
0
72 / 72 / 33
Регистрация: 07.11.2015
Сообщений: 281
09.11.2015, 09:16 9
Т.е. пример, который я скинул, не запускается? Или все-таки работает?

Самый простой способ по переводу в ООП (сам так делал ) - запихнуть функции и их общие данные в класс (тот же MainWindow). Для интерфейса же вместо std::cout использовать какой-нить QTextBrowser
C++ (Qt)
1
ui->textBrowser->append("текст")
и делать это все в обработчике нажатия на кнопку (обычный метод класса, но объявленная в разделе `slots` и соединенная с сигналом `clicked()` какой-нить кнопки через `connect`).
1
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
09.11.2015, 09:38  [ТС] 10
Цитата Сообщение от OneMoreGres Посмотреть сообщение
Т.е. пример, который я скинул, не запускается? Или все-таки работает?
Самый простой способ по переводу в ООП (сам так делал ) - запихнуть функции и их общие данные в класс (тот же MainWindow). Для интерфейса же вместо std::cout использовать какой-нить QTextBrowser
C++ (QT)Выделить код
1
ui->textBrowser->append("текст")
и делать это все в обработчике нажатия на кнопку (обычный метод класса, но объявленная в разделе `slots` и соединенная с сигналом `clicked()` какой-нить кнопки через `connect`).
Спасибо за совет. Только у меня все функции по разным исходным файлам и прототипам раскиданы. Читаю классы и др литературу... Сразу так не сделаешь конечно.
Ваш пример я вчера не проверял, ответил и ушел...
0
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
13.11.2015, 00:15  [ТС] 11
Здравствуйте! Более менее понял как выводить тексты и как работают кнопки связывая сигналы и слоты.
Вопрос, если мне достаточно 1 формы с 1 текстовым окном и несколько кнопок.
Могу ли я очищать текст в интерфейсе одной и той же кнопкой? Тонну задач на несколько кнопок накидать, которые будут работать при определенных условиях. Те в начале они будут как вперёд назад, потом да/нет, сохранить и открыть и тд.
Или может проще делать старые скрытыми и создать новые? Тут не совсем знаю как организовать на интерфейсе.

Или все же нужно несколько форм делать?
0
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
13.11.2015, 00:25 12
о_О_Кто_здесь, а что вообще требуется по задаче сделать? отталкиваясь от этого, следует планировать интерфейс

Добавлено через 6 минут
В смысле, выложите ТЗ к курсовой, и покажите код класса, работающего с матрицей
0
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
13.11.2015, 00:58  [ТС] 13
Цитата Сообщение от 0x90h Посмотреть сообщение
о_О_Кто_здесь, а что вообще требуется по задаче сделать? отталкиваясь от этого, следует планировать интерфейс
Добавлено через 6 минут
В смысле, выложите ТЗ к курсовой, и покажите код класса, работающего с матрицей
Вот ТЗ, хотя все сказали на словах... методическое пособие по курсовой работе.zip
А вот как это выглядит в консоли Release.rar готовая exe
А кода в классах пока нету. Сейчас весь код в функциях, в данный момент я его переделываю. Все две курсовые, один полностью новый, другой консольный вариант переделать.
0
660 / 661 / 106
Регистрация: 29.05.2015
Сообщений: 3,964
13.11.2015, 09:14 14
Цитата Сообщение от о_О_Кто_здесь Посмотреть сообщение
Могу ли я очищать текст в интерфейсе одной и той же кнопкой? Тонну задач на несколько кнопок накидать, которые будут работать при определенных условиях. Те в начале они будут как вперёд назад, потом да/нет, сохранить и открыть и тд.
Или может проще делать старые скрытыми и создать новые? Тут не совсем знаю как организовать на интерфейсе.
Или все же нужно несколько форм делать?
Можно всё! Хозяин - в смысле программист - барин. Можно и очищать поля ввода-вывода, и менять надписи на кнопках, и делать их видимыми-невидимыми. Можно на главном окне сделать список решаемых задач (есть таблица, есть выпадающие списки и т.п.), а для каждой выбранной задачи вызывать свою новую форму с решением. Можно сделать одно большоё окно - справа задачи, слева решения. Какой интерфейс задумаешь, такой и можно написать. Всё в твоих руках.
1
683 / 458 / 160
Регистрация: 01.10.2015
Сообщений: 1,264
13.11.2015, 12:39 15
Посмотрел консольное решение, выложенное вами, по сути, у вас 2 основных режима работы программы, собственно, решение СЛАУ и тестирование на предмет усвоения теория, показ мини-справки по теории и информация об авторстве - вспомогательные. Вариантов оформления множество, за основу можно взять потомка QMainWindow, чтобы получить заготовки меню, тулбара и строки состояния, центральным виджетом сделать QStackedWidget (в один момент времени он отображает только один из входящих в него виджетов), а переключать режимы работы программы (и следовательно, отображаемые виджеты) можно с помощью комбобокса, закинув его для удобства все в тот же тулбар.

Ну и небольшой пример:
SLAU_ui.zip

Он никоим образом не претендует на оптимальность и функциональность реализована в очень урезанном виде, это просто один из возможных вариантов оформления, коих очень много
1
13 / 13 / 1
Регистрация: 06.06.2011
Сообщений: 157
13.11.2015, 14:55  [ТС] 16
Спасибо большое! Вечером посмотрю)
0
13.11.2015, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2015, 14:55
Помогаю со студенческими работами здесь

Создание простого консольного ООП-приложения любой тематики
Всем привет, нужна помощь в создании простого консольного приложения. Вот несколько условий: 1....

Автозагрузка консольного проекта
Привет, как добавить консольный проект в автозагрузку через реестр? Многое перепробовал- ничего не...

Переделать метод из консольного в Form
Используя либу MonoTorrent хочу сделать простенький клиент. Консольный вариант работает как надо а...

Переделать из консольного приложения в оконное
//--------------------------------------------------------------------------- #include <vcl.h>...

Переделать с консольного в оконное приложение
Добрый день, помогите сделать код под форму var r1, r2, rs : real; begin ...

Создание проекта консольного приложения
Проблема вот такая, не могу создать проэкт Консольное приложение win32. Появляется пустое окно и...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

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