Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556

Какие должны быть знания для перехода на приложения с GUI?

13.02.2016, 22:10. Показов 1801. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, что мне нужно знать в C++ для того, чтобы уверенно перейти от консолей до изучения написания приложений с GUI?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2016, 22:10
Ответы с готовыми решениями:

Следует дать конкретную постановку, т.е. указать, какие классы должны быть реализованы, какие должны быть в ни
Задание: Перечень классов: квитанция, накладная, документ, чек; Порядок выполнения работы 1. Определить иерархию классов (в...

Магазин видеоигр. Что нужно для функционирования магазина. Какие таблицы должны быть, какие запросы и какие отчеты
Я очень сильно запутался и я не могу себе представить, что нужно для функционирования магазина. Какие таблицы должны быть, какие запросы и...

Для абстрактного класса определить какие методы должны быть абстрактными, а какие обычными.
1. Полную структуру классов и их взаимосвязь продумать самостоятельно. 2. Для абстрактного класса определить какие методы должны быть...

35
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
13.02.2016, 22:43
Смотря какое GUI.
Если обычное с++ - то нужно знать описания методов QWidget и QDialog как минимум и уметь применять connect.
Если QML - то прочтите Qt5 Cadaques и просмотрите слайды(их там несколько частей). Также нужно хотя бы примитивно знать основы JavaScript.

Добавлено через 1 минуту
В любом случае у Qt есть много примеров приложений и если где-то что-то непонятно, то просто просмотрите нужный пример.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,274
13.02.2016, 23:12
Элементарно Ватсон. Для этого нужно 4 вещи: установленный на компе Qt, форма, кнопка (Button) и метка (Label). Форма в Qt создаётся автоматически, мышкой перетаскиваешь на неё кнопку и метку - в любые места, куда хочешь.. Сигнал кнопки соединяешь со слотом - как это сделать инфы везде полно, даже в начале этого раздела где-то есть. В слоте записываешь свой "Hello World" в метку. Всё. Первая графическая программа готова.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
14.02.2016, 00:43
Sabnik18, Возьми книжку Шлее. Или Бланшета с Саммерфильдом. Не пройдет и года, как тебе все эти ГУИ покажутся такой простой и скушной ерундой
0
Респект C++
 Аватар для FCommander
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
14.02.2016, 01:42
Можно и WinAPI для взаимодействия с системой.

Добавлено через 19 минут
Цитата Сообщение от 8-BITOV
Не пройдет и года, как тебе все эти ГУИ покажутся такой простой и скушной ерундой
Это только в Qt. Попробуйте WinAPI, там ему и вам точно GUI ерундой не покажется. Чтобы его весь освоить жизни не хватит, я полгода на WinAPI программировал, мало что изучил, после WinAPI, Qt для меня показался игрушкой.
Ну согласитесь, взять даже пример создания окна.
Так это выглядит на WinAPI:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <windows.h>
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
    HWND hwnd;
    MSG msg;
    WNDCLASS w;
    memset(&w,0,sizeof(WNDCLASS));
    w.style = CS_HREDRAW | CS_VREDRAW;
    w.lpfnWndProc = WndProc;
    w.hInstance = hInstance;
    w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    w.lpszClassName = "WindowClass";
    RegisterClass(&w);
    hwnd = CreateWindow("My Class", "Window", WS_OVERLAPPEDWINDOW,
        300, 200, 200, 180, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_DESTROY: 
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, Message, wparam, lparam);
    }
    return 0;
}
А в Qt почти одним QMainWindow и несколькими строчками всё это заменить можно. Qt очень лёгкий и удобный. Я вам советую. Но нет взаимодействия с системой.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 05:54  [ТС]
Wyn, FCommander, alexu_007, вы наверное не поняли, я имел ввиду какие знания В ОБЩЕМ нужно иметь в С++ (типа там ООП, СТЛ или что-то ещё), чтобы перейти с консолек на Гуи? Я хочу переходить на Кьют.
0
 Аватар для Wyn
1073 / 654 / 230
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
14.02.2016, 07:26
Цитата Сообщение от Sabnik18 Посмотреть сообщение
вы наверное не поняли, я имел ввиду какие знания В ОБЩЕМ нужно иметь в С++ (типа там ООП, СТЛ или что-то ещё), чтобы перейти с консолек на Гуи? Я хочу переходить на Кьют.
Никаких особенных. Что консольки, что гуи с точки зрения с++ требуют одинаковых знаний с++. Единственное, что из с++ можно _не_знать_ в Qt - это exception и STL. Всё остальное используется, что в консольках, что в гуи.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,274
14.02.2016, 07:45
Цитата Сообщение от Sabnik18 Посмотреть сообщение
я имел ввиду какие знания В ОБЩЕМ нужно иметь в С++ (типа там ООП, СТЛ или что-то ещё), чтобы перейти с консолек на Гуи?
Я ж говорю - никаких! Ну, почти никаких. Можно использовать ООП, классы там создавать и т.п. Можно обходиться готовыми классами Qt и старыми добрыми функциями. Потому что "метод, слот" - это новые модные названия всё тех же функций, которые вызываются и отрабатывают своё. Как в обычном Си.

Чтобы перейти с консолей на GUI, нужно понять всего несколько несложных вещей:

- код теперь пишется не в main.cpp

- для ввода в программу вместо getch(); используется lineEdit->text();

- для вывода из программы вместо printf(); используется label->setText();

-принцип работы с окном несколько другой, нежели с консолью: вводишь нужные данные, нажимаешь кнопку - по нажатию кнопки программа что-то вычисляет и выдаёт тебе результат.

- имеется ещё куча всего стандартного, типа кнопок, таблиц, прогрессбаров и тд, бесплатно написанного для тебя другими людьми - нужно только научиться этим пользоваться.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 09:22  [ТС]
alexu_007, то есть, ты говоришь, что можно после первой прочитанной книги Липпмана, сразу переходить к Qt?
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,274
14.02.2016, 10:22
Ну не знаю... программирование опасная вещь... Нужно перечитать максимальное количество книг, всё тщательно обдумать - и только после этого осторожно запускать первую программу на выполнение.
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
14.02.2016, 11:57
Цитата Сообщение от FCommander Посмотреть сообщение
Так это выглядит на WinAPI:
Ну, вы бы нам еще callback-функции показали!
В свое время я несколько раз брался за ВинАпи и каждый раз терпел позорное поражение. Пока не попалась книжонка.
Клейтон УОЛНЭМ. Объектно ориентированное программирование Borland C++. Попурри. Минск 1997
Цитирую первые строки предисловия
Программирование в среде Windows напоминает попытку отыскать выход в сложном лабиринте, напичканном смертельными ловушками и хищниками: один неверный шаг может вас погубить. Лабиринт под названием Windows, поверьте, место темное, настолько темное, что не всегда удается определить, где ты находишься. Каждый раз, когда кажется, что выход найден, какая-то сила затягивает вас назад во тьму. Слышите, как хрустят ваши косточки?
Далее он предлагает путеводную нить в этом лабиринте в виде библиотеки OWL, но он врет. Это всего лишь другой этаж. Но книжку читать было приятно.
Потом я побывал на других этажах этого лабиринта (не на всех, конечно). И наиболее благоустроенным показался мне Qt.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 12:59  [ТС]
8-BITOV, можете ответить на мой пост, который выше вашего на 1?
0
543 / 486 / 104
Регистрация: 05.05.2014
Сообщений: 1,110
14.02.2016, 13:21
Цитата Сообщение от Sabnik18 Посмотреть сообщение
можете ответить на мой пост,
У Qt всетки есть своя специфика. Читай Шлее и - вперед.
0
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
14.02.2016, 14:29
Ну GUI же не что-то уникальное, сама визуальная часть для многих будет незначительное время занимать. Переходить можешь сразу.

Добавлено через 11 минут
На вин апи видно сразу, что обертки надо писать. Либо пользоваться готовыми.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 14:51  [ТС]
edwvee, ну а все же, для того, чтобы быть полноценным С++ прогером (понятно, что С++ можно учить всю жизнь и т.д.) что нужно знать до перехода на Qt? Хватит ли одной прочитанной книги из каждого раздела темы "Литература С++"?
0
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
14.02.2016, 15:44
Да переходи сразу, а в процессе параллельно изучай книжки по языку. Это же в некотором роде готовый инструментарий, где многое сделано и в том числе, чтобы меньше знать, но больше и ровнее делать. Так что начинай прямо сейчас.

Добавлено через 2 минуты
Тем более qt не только gui, я вот сейчас без gui пишу с использованием qt, потому что простая поддержка многопоточности, асинхронная работа с сетью, средства для работы с бд.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 16:05  [ТС]
edwvee, а есть такой вариант, что в книге по QT изучаются классы, функции? Не в смысле классы, которые относятся именно к QT, а как создавать классы и работать с ними и т.д? Ну то есть, если я буду читать QT книжки, то я буду юзлес в написании консолек?
И можешь сказать, какую бы ты книгу посоветовал?
0
20 / 20 / 2
Регистрация: 27.01.2014
Сообщений: 232
14.02.2016, 16:29
Ммм, что значит консолек? Если какие-то прикладные утилиты, вроде конвертор чего-то во что-то, то тут без разницы гуи оно или нет. Если сервер какой-то, то это отдельная тема, хотя qt тут тоже может пригодиться.
По qt? По мне Шлее неплох для знакомства и как некий справочник, а больше ничего и не читал, так как для практики достаточно.
0
Респект C++
 Аватар для FCommander
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
14.02.2016, 17:59
Короче...Знаний твоих вполне достаточно, чтобы перейти на GUI. Я всего две недели C++ изучал, потом на GUI перешёл.
0
BrainOverflow
 Аватар для sab1ch
126 / 130 / 64
Регистрация: 31.03.2013
Сообщений: 556
14.02.2016, 18:38  [ТС]
FCommander, какую книгу можно взять, лучше поновее?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2016, 18:38
Помогаю со студенческими работами здесь

какие характеристики должны быть у ноутбука для работы с visual studio
Наверно уже ясно из названия выше что я ищу ноутбук для работы в visual studio 2019 хочу себя прикупить но я не знаю примерных...

я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!!
я учусь на высшке на программиста.. какие могут быть задачи на экзамене 1й курс .2й семестр!!.. должны быть классы!!.. например какие...

Какие температуры должны быть и как настроить оптимальную для моей системы частоту вращения куллера на видеокарте?
Недавно, точнее сегодня у меня появился новый комп. Я играю около 10-15 минут в батлу 3 или в блек опс и у меня вылетает синий...

Какие должны быть настройки
Всем привет! Не трогал VBA лет 15, а может 20... Теперь вот опять понадобилось. Sub FP() ' FP Макрос Cells(0, 10) = 10 ...

Какие должны быть характеристики у монитора
Всем привет, к выбору монитора думаю мне стоит отнестись очень серъезно - за компом я провожу каждый день минимум 10 часов + ко всему глаза...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru