Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
iHardc0re
5 / 5 / 4
Регистрация: 18.02.2017
Сообщений: 20
1

Быстрый старт в QT

19.04.2017, 12:03. Просмотров 1790. Ответов 18
Метки нет (Все метки)

Нужно делать лабораторные с визуальным интерфейсом, буду использовать только эти комоненты:
Edit, Button, Label, DataGriedView и Checkbox.
Есть ли статья по быстрому старту с данной библиотекой ?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2017, 12:03
Ответы с готовыми решениями:

Быстрый старт
Появилась необходимость использования linux на ноутбуке, ноутбук нужен для работы, срочно в...

Быстрый :) старт - АРМы
Доброго времени суток! Надеюсь, что из нашего сообщества, есть специалисты и по АРМам. Так вот,...

Очень быстрый старт
Нужно написать небольшой апплет, но читать учебники нет времени, знаю C#, Python,C++. Ищу книгу до...

Mac OS eclipse Быстрый старт
Привет ребята! Решил попробовать на вкус пиченьки от ST Перечитал кучу литературы. В качестве ИДЕ...

LPC быстрый старт.Как?
Есть в наличии два контроллера:lpc2104 и lpc2142.Очень хотелось бы начать изучать арм,но даже не...

18
icpu
485 / 363 / 94
Регистрация: 10.03.2011
Сообщений: 1,512
Записей в блоге: 5
19.04.2017, 12:50 2
Ага, есть.
0
Байт
Кососимметричный пес
Эксперт C
22528 / 14237 / 2997
Регистрация: 24.12.2010
Сообщений: 30,336
19.04.2017, 15:53 3
Из литературы можно посоветовать Шлее или Бланшет&Саммерфилд
0
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
19.04.2017, 17:21 4
Лучший ответ Сообщение было отмечено iHardc0re как решение

Решение

Вот то что тебе нужно: элементарная работа с простыми виджетами: кнопка (button), метка (label), поле ввода (textedit), таблица (tablewidget). Пользуешься креатором, мышкой перетаскиваешь виджеты на форму и пишешь минимум кода, что-бы работали:

Qt - руководство для новичков
1
Anvis
38 / 16 / 5
Регистрация: 06.06.2013
Сообщений: 75
19.04.2017, 21:23 5
На самом деле, вам еще понадобится что-то типа QSpinBox, QDoubleSpinBox, а в QTableWidget поначалу можно закопаться. Если нужно просто что-то вывести на экран - возможно, для простоты подойдет обычный текстовый браузер типа QTextEdit. Ну и выводить информацию в него через \t. Но начинаете вы не с того. Почитайте книги, что предложили выше, или примеры в Интернете. Если уже знакомы с C++ и с объектно-ориентированным программированием - вам сперва нужно будет понять, как в Qt связывать друг с другом формы. А методы для работы с виджетами в большинстве случаев ищутся за пару минут - вам их подскажет документация. Благо, у Qt она отличная.
0
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
20.04.2017, 05:47 6
Ничего в таблице не закопаешься, нужно просто спросить, как помещать данные в таблицу и как читать из таблицы. Я выложу кусочек кода, как это практически делается - и всё. Создаёшь креатором таблицу - нужное количество столбцов и строк, заголовки по небходимости - и заполняешь своими данными.

Глубоких знаний ООП для программирования в Qt не нужно, достаточно самых поверхностных. Если знаешь что такое объявление класса, конструктор - уже хорошо. И достаточно. Наследование, перегрузка операторов, виртуальные функции - оставь это профессионалам, без всего этого можно легко обойтись.

Новых классов и объектов при программировании в Qt можно не создавать, обойтись стандартными. В принципе, знаний простого Си достаточно. Помещаешь на форму таблицу (допустим) и кнопку. В таблицу помещаешь свои экспериментальные данные, если ты учёный или лабу делаешь. Нажимаешь кнопку, вызывается слот - та же функция в терминах Си - в этом слоте делаешь вычисления и выводишь результат на экран. Старые добрые функции, массивы, циклы - всё работает в Qt точно так же, как в Си.

Немного тренировки - и можно писать довольно сложные программы. Например я написал программу, решающую судоку. И программу, решающую пятнашки - в неё можно играть, а можно нажать кнопку - и пятнашки начнут собираться сами, даже с анимацией примитивной, кнопки с цифрами по экрану двигаться будут. И всё это с помощью функций, не создав ни одного класса. На фото - программа решила судоку. И нашла решение пятнашек за 60 ходов.
4
Миниатюры
Быстрый старт в QT  
Байт
Кососимметричный пес
Эксперт C
22528 / 14237 / 2997
Регистрация: 24.12.2010
Сообщений: 30,336
20.04.2017, 10:03 7
Цитата Сообщение от alexu_007 Посмотреть сообщение
И достаточно.
Из специфических Qt-инструментов я бы добавил концепцию "сигнал - слот", но это тоже "не бином Ньютона"
0
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
20.04.2017, 23:24 8
Можно упрощённо считать что функция (слот) вызывается при нажатии кнопки. При написании правильного кода ессно: одна строчка в хедере - объявление слота, и одна в конструкторе - связь сигнала со слотом. Ну и тело слота - третья строчка. Этим можно пользоваться и не зная слов сигнал-слот. Просто "так надо чтобы кнопка работала". Понятно, что можно связать сигнал с разными слотами и слот с разными сигналами, и может ещё что-нить полезное совершить, о чём я не знаю. Но для начала сгодится и "чтобы кнопка тупо работала".
0
Байт
Кососимметричный пес
Эксперт C
22528 / 14237 / 2997
Регистрация: 24.12.2010
Сообщений: 30,336
20.04.2017, 23:47 9
Цитата Сообщение от alexu_007 Посмотреть сообщение
Но для начала сгодится
Не могу с вами не согласиться. Да, в Qt есть все для быстрого старта. И несложно в доке и в литературе найти несколько простых примеров, скомпоновать из них простую рабочую лабу. Если цель ТС этим ограничивается - семь футов ему под килем.
Но не дай Бог, если он сюда вернется, и будет задавать вопросы, как знающий Qt
0
0x90h
546 / 363 / 139
Регистрация: 01.10.2015
Сообщений: 1,100
21.04.2017, 01:52 10
Цитата Сообщение от alexu_007 Посмотреть сообщение
Глубоких знаний ООП для программирования в Qt не нужно, достаточно самых поверхностных. Если знаешь что такое объявление класса, конструктор - уже хорошо. И достаточно. Наследование, перегрузка операторов, виртуальные функции - оставь это профессионалам, без всего этого можно легко обойтись.

Не по теме:

Хорошо быть неандертальцем - бей себе волосатых слонов... И вершина технологии - каменный топор...



Найдите в интернете учебный план любого ВУЗа, в котором читается курс по "плюсам", будете здорово удивлены: оказывается, для студента второго (в худшем случае) курса слова "наследование", "полиморфизм", и прочие термины из ООП, не являются страшными шаманскими заклятьями. На защите той самой лабы вам легко могут задать вопрос по теоретической части, и где гарантия, что вас не спросят, например, о виртуальных деструкторах? Это к вашему тезису о "достаточности" из приведенной выше цитаты.

И с чего вы вообще решили, что ТС настолько не знаком с C++? А если даже и не знает, то с такими познаниями писать что-то с использованием фреймворка, основанного на C++, и вносящего свою специфику, является... ну, вы поняли, да?

Несколько настораживает другое: конец семестра, по сути, человек внезапно "озадачился" написанием лаб. Классическая ситуация: дайте мне методичку и через 15 минут я сдам экзамен по любому предмету. Всегда "умиляла" вера студентов в возможность подобного развития событий.

Цитата Сообщение от Байт Посмотреть сообщение
Да, в Qt есть все для быстрого старта.
Опять же, "быстрота" этого пресловутого "старта" есть понятие относительное. Да и "порог вхождения" не настолько низкий.
0
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
23.04.2017, 09:14 11
Цитата Сообщение от 0x90h Посмотреть сообщение
Да и "порог вхождения" не настолько низкий.
Думаю, даже ещё ниже (плинтуса). Достаточно не понять, и не запомнить, как работает кнопка, метка и lineEdit для ввода данных. А просто иметь один рабочий исходник, с которого копировать нужный код. Уже можно писать программы с знанием почти только Си - оконный "аналог консолей" - ввел данные в нужные окошки, нажал кнопку, получил результат.

Если нужно что-то ещё - лезешь в интернет - почти всегда можно найти исходники того что тебе нужно. Не всю программу подходящую тебе 100% ессно, а нужную тебе часть кода. Как работать с той же таблицей, сценой, да практически с чем угодно. Вся эта инфа есть и на русском языке. Для сложных случаев есть форум - и тут помогут.
0
DevAlone
326 / 278 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Завершенные тесты: 4
24.04.2017, 01:58 12
Цитата Сообщение от alexu_007 Посмотреть сообщение
Думаю, даже ещё ниже (плинтуса). Достаточно не понять, и не запомнить, как работает кнопка, метка и lineEdit для ввода данных. А просто иметь один рабочий исходник, с которого копировать нужный код. Уже можно писать программы с знанием почти только Си - оконный "аналог консолей" - ввел данные в нужные окошки, нажал кнопку, получил результат.
Тогда лучше выбрать C# + WinForms, там программировать мышкой ещё проще, у меня один преподаватель так пишет, вся логика в формах, да и в целом код такой, что даже лучшие программисты лучше выйдут в окно, чем попытаются править это исчадие ада.

Добавлено через 34 секунды
Цитата Сообщение от alexu_007 Посмотреть сообщение
Понятно, что можно связать сигнал с разными слотами и слот с разными сигналами, и может ещё что-нить полезное совершить, о чём я не знаю
ещё можно сигнал с сигналом и можно явно указывать, будет ли он помещён в очередь или обработан непосредственно
0
wm_leviathan
199 / 200 / 70
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
24.04.2017, 13:05 13
Цитата Сообщение от alexu_007 Посмотреть сообщение
Достаточно не понять, и не запомнить, как работает кнопка, метка и lineEdit для ввода данных. А просто иметь один рабочий исходник, с которого копировать нужный код.
Тогда познания языка у тебя ограничатся этим самым исходником.
Цитата Сообщение от alexu_007 Посмотреть сообщение
Если нужно что-то ещё - лезешь в интернет - почти всегда можно найти исходники того что тебе нужно.
Ага, а если нету интернета? в дороге там например или еще где ? Все ваша жизнь как программиста остановилась ? Потому что сами вы без исходников и без интернета сделать ничего не можете.
Есть такие программисты которые ничего сами не думают, скачал исходник вырезал кусок кода и вставил себе в программу, ок работает. Нужно добавить что то еще, без проблем скачал исходник подсунул кусок кода в программу, ок все работает. Это быдлокодеры.
ЗЫ Книги все еще остаются лучшим способом получения знаний.
2
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
24.04.2017, 17:22 14
Цитата Сообщение от wm_leviathan Посмотреть сообщение
Ага, а если нету интернета? в дороге там например или еще где ? Все ваша жизнь как программиста остановилась ? Потому что сами вы без исходников и без интернета сделать ничего не можете.
Есть такие программисты которые ничего сами не думают, скачал исходник вырезал кусок кода и вставил себе в программу, ок работает. Нужно добавить что то еще, без проблем скачал исходник подсунул кусок кода в программу, ок все работает. Это быдлокодеры.
Далеко не все учат программирование, что-бы стать профессиональным программистом. Например я - для удовольствия, это хобби. Наверное я быдлокодер, но я свой быдлокод никому не навязываю. Ну и спортивный интерес - писать программы с минимальными усилиями, излишне не заморачиваться там, где это необязательно. Если нет интернета и исходников - я подожду день-два или недельку - пока что-нибудь появится. Может я туповат. Но у меня не получается самому придумать, чтобы работало - что-то вроде:

C++ (Qt)
1
2
3
    scene = new QGraphicsScene();
    scene->setSceneRect(ui->graphicsView->rect());
    ui->graphicsView->setScene(scene);
Мне нужно где-нибудь это подсмотреть (в книге, в хелпе, или в инете в чьём-нить исходнике - не важно) и сделать так же. Что-бы сцена работала.

ЗЫ Книги все еще остаются лучшим способом получения знаний.
С книгами как-то не сложилось. Ни Шлее, ни Саммерфильд. Я хочу всё делать проще, с помощью креатора, а господа пытаются заставить меня динамически создавать виджеты, или в main.cpp код писать, а я его не люблю без необходимости руками трогать. Или там метка = форма = готовая программа. Наверное это круто, но полезной информации в этом ноль, реальные программы не состоят из одной метки. Ну и так далее...

Добавлено через 7 минут
Ну и по теме: быстрый старт в Qt это как раз я считаю - креатор, дизайнер, набросал на форму виджетов и заставил их правильно работать.
0
DevAlone
326 / 278 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Завершенные тесты: 4
24.04.2017, 18:54 15
alexu_007, научиться создавать без дизайнера форм полезно для понимания фреймворка, да и вы можете читать книгу и всё так же пользоваться дизайнером. Но если вы хотите действительно хорошо разобраться, то нужно изучить основы, т.е. должно быть хорошее понимание в первую очередь C++ (можно ещё assembler и архитектуру ПК, но это уже для того, чтоб писать более оптимизированный код)
0
alexu_007
236 / 244 / 47
Регистрация: 29.05.2015
Сообщений: 1,530
24.04.2017, 20:30 16
Цитата Сообщение от DevAlone Посмотреть сообщение
научиться создавать без дизайнера форм полезно
Бесполезная работа и лишний код в файле срр:

1. cоздаём кнопку с помощью new
2. задаём размеры кнопки
3. задаём положение кнопки на форме
4. видимая/невидимая
5. активная/неактивная

Этот код не нужен в файле cpp, он только засоряет конструктор, лишние строчки. Дизайнер автоматически создаёт тот же код, но в файле ui, где он никому не мешает.
0
DevAlone
326 / 278 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
Завершенные тесты: 4
24.04.2017, 22:20 17
Цитата Сообщение от alexu_007 Посмотреть сообщение
Этот код не нужен в файле cpp, он только засоряет конструктор, лишние строчки. Дизайнер автоматически создаёт тот же код, но в файле ui, где он никому не мешает.
Я не говорю, что ты должен так делать в своих программах, я говорю, что это полезно для понимания Qt.
0
Байт
Кососимметричный пес
Эксперт C
22528 / 14237 / 2997
Регистрация: 24.12.2010
Сообщений: 30,336
24.04.2017, 23:40 18
Цитата Сообщение от alexu_007 Посмотреть сообщение
2. задаём размеры кнопки
3. задаём положение кнопки на форме
С этим неплохо справляются лайоуты
Цитата Сообщение от alexu_007 Посмотреть сообщение
4. видимая/невидимая
5. активная/неактивная
Странно было бы иметь кнопку, которая всегда невидима/неактивна. Переключение ее состояний зависит от текущей ситуации, и в любом случае забота об этом ложится на код.
0
Anvis
38 / 16 / 5
Регистрация: 06.06.2013
Сообщений: 75
25.04.2017, 00:49 19
Цитата Сообщение от alexu_007 Посмотреть сообщение
Я хочу всё делать проще, с помощью креатора
Я сам еще не пробовал, но говорят, еще проще в топовых конструкторах "Лего". Там и просто, и эффектно, и наверняка визуализированно. У нас в городе даже вузы есть, студенты которых эти "Лего" собирают, на выставках показывают, в конкурсах с ними участвуют. Научные достижения и все такое...

Цитата Сообщение от alexu_007 Посмотреть сообщение
информации в этом ноль
ровно до тех пор, пока задачи примитивные.
0
25.04.2017, 00:49
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2017, 00:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

ssas, быстрый старт(Olap)
Здравствуйте =) Такая проблема: есть задание написать аналитическую систему для транснациональной...

Firebird на Ubuntu: установка и быстрый старт
Вам потребовалось установить Firebird на Linux, но вы еще не имеете опыта работы ни с Firebird, ни...

LINUX: Pinboard II Быстрый старт AVR
Для тех, кто (как я, например) не смог найти ответа в темах "Как, чОрт, под линухом залить прошивку...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.