Qt учебник
Начало работы с Qt
Как указано в официальной документации , Qt представляет собой кросс-платформенную платформу разработки приложений для настольных компьютеров, встроенных и мобильных устройств. Поддерживаемые платформы включают Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS и другие.
В этом разделе представлен обзор того, что такое Qt, и почему разработчик может захотеть его использовать.
Он также должен упомянуть о любых крупных предметах в Qt и ссылки на связанные темы. Поскольку документация для qt является новой, вам может потребоваться создать начальные версии этих связанных тем.
Версии
Версия | Дата выхода |
---|---|
Qt 3.0 | 2001-10-16 |
Qt 3,3 | 2004-02-05 |
Qt 4.1 | 2005-12-20 |
Qt 4,8 | 2011-12-15 |
Qt 5.0 | 2012-12-19 |
Qt 5.6 | 2016-03-16 |
Qt 5.7 | 2016-06-16 |
Qt 5.8 | 2017-01-23 |
Qt 5.9 | 2017-05-31 |
Установка и настройка в Windows и Linux
Загрузите Qt для Linux с открытым исходным кодом
Перейдите на страницу https://www.qt.io/download-open-source/ и нажмите «Загрузить сейчас», убедитесь, что вы загружаете программу установки Qt для Linux.
Будет загружен файл с именем qt-unified-linux-x-online.run, затем добавьте разрешение exec
chmod +x qt-unified-linux-x-online.run
Не забудьте изменить «x» для фактической версии установщика. Затем запустите программу установки
Загрузите Qt для Windows с открытым исходным кодом
Перейдите на страницу https://www.qt.io/download-open-source/ . На следующем скриншоте показана страница загрузки в Windows:
То, что вы должны сделать сейчас, зависит от того, какую IDE вы собираетесь использовать. Если вы собираетесь использовать Qt Creator, который включен в программу установки, просто нажмите «Загрузить сейчас» и запустите исполняемый файл.
Если вы собираетесь использовать Qt в Visual Studio, обычно также должна работать кнопка «Загрузить сейчас». Убедитесь, что загруженный файл называется qt-opensource-windows-x86-msvc2015_64-xxxexe или qt-opensource-windows-x86-msvc2015_32-xxxexe (где xxx — версия Qt, например 5.7.0). Если это не так, нажмите «Просмотреть все заказы» и выберите один из первых четырех вариантов под Windows Host.
Если вы собираетесь использовать Qt в Code :: Blocks, нажмите «Просмотреть все закачки» и выберите Qt xxx для Windows 32-bit (MinGW xxx, 1.2 GB) под Windows Host.
После того как вы загрузите соответствующий файл установщика, запустите исполняемый файл и следуйте приведенным ниже инструкциям. Обратите внимание, что вам нужно быть администратором для установки Qt. Если вы не являетесь администратором, вы можете найти несколько альтернативных решений здесь .
Установите Qt в любую операционную систему
После того, как вы загрузили Qt и открыли программу установки, процедура установки одинакова для всех операционных систем, хотя скриншоты могут выглядеть несколько иначе. Представленные здесь скриншоты взяты из Linux.
Войдите в существующую учетную запись Qt или создайте новую:
Выберите путь для установки Qt-библиотек и инструментов
Выберите версию библиотеки и функции, которые вы хотите
После завершения загрузки и завершения установки перейдите в каталог установки Qt и запустите Qt Creator или запустите его непосредственно из командной строки.
Привет, мир
В этом примере мы просто создаем и показываем кнопку в рамке окна на рабочем столе. На кнопке появится ярлык Hello world!
Это представляет собой простейшую возможную программу Qt.
Прежде всего нам нужен файл проекта:
helloworld.pro
QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = helloworld TEMPLATE = app SOURCES += main.cpp
- QT используется для указания того, какие библиотеки (модули Qt) используются в этом проекте. Поскольку наше первое приложение представляет собой небольшой графический интерфейс, нам понадобятся QtCore и QtGui. Поскольку Qt5 выделяет QtWidgets из QtGui, нам нужно добавить строку greaterThan , чтобы скомпилировать ее с Qt5.
- TARGET — это имя приложения или библиотеки.
- TEMPLATE описывает тип сборки. Это может быть приложение (приложение), библиотека (lib) или просто подкаталоги (поддиры).
- SOURCES — это список файлов исходного кода, которые будут использоваться при создании проекта.
Нам также нужен main.cpp, содержащий приложение Qt:
#include #include int main(int argc, char *argv[]) < QApplication a(argc, argv); QPushButton button ("Hello world!"); button.show(); return a.exec(); // .exec starts QApplication and related GUI, this line starts 'event loop' >
- Объект QApplication. Этот объект управляет ресурсами приложения и необходим для запуска любой программы Qt с графическим интерфейсом. Ему нужны argv и args, потому что Qt принимает несколько аргументов командной строки. При вызове a.exec() запускается цикл событий Qt.
- Объект QPushButton. Кнопка с ярлыком Hello world! , Следующая строка, button.show() , показывает кнопку на экране в своем окне.
Наконец, чтобы запустить приложение, откройте командную строку и введите каталог, в котором у вас есть .cpp-файл программы. Введите следующие команды оболочки для сборки программы.
Базовое приложение с QtCreator и QtDesigner
QtCreator на данный момент является лучшим инструментом для создания приложения Qt. В этом примере мы увидим, как создать простое приложение Qt, которое управляет кнопкой и пишет текст.
Чтобы создать новое приложение, щелкните Файл-> Новый файл или Проект:
Затем выберите приложение «Projects-> Application-> Qt Widgets»
Затем вы можете выбрать имя и путь вашего проекта:
Затем вы можете выбрать набор, который вы будете использовать. Если у вас нет какого-либо набора, QtCreator создаст комплект с вашей версией Qt и основным компилятором вашего компьютера. Если у вас нет компилятора, вы можете установить его. В Windows: установите Visual Studio. В Linux / Mac: установите g ++ или clang ++.
Затем вы можете выбрать имя вашего основного класса окна, унаследованного класса, имя файла, соответствующего вашему классу основного окна. Если вы изучаете или тестируете Qt, вам действительно не нужно их менять.
Последним шагом может быть выбор подпроекта этого проекта и добавление контроля версий, такого как git и svn. Опять же, если это только для тестов, вам не нужно их менять.
Затем нажмите кнопку «Готово». Теперь вы должны быть здесь:
Это база вашего приложения. если вы запустите его сейчас, щелкнув Build-> Run или ctrl + R (по умолчанию), вы увидите пустое окно.
Теперь мы добавим текст и кнопку. для этого мы будем использовать Qt Designer. Дважды щелкните по mainwindow.ui Итак, теперь вы должны увидеть: (если нет, и вы видите какой-то xml-файл, нажмите кнопку «Дизайн» слева)
Здесь Qt Designer! Кажется довольно сложным. Но как только вы привыкнете к этому, это действительно здорово. Мы добавим текст и кнопку. Слева находится список предметов. Вы можете щелкнуть по одному и перетащить объекты. Нажмите на кнопку и отпустите ее в окне. Затем выполните поиск в Label и сделайте то же самое (у вас есть фильтр в верхнем левом углу, где вы можете написать объект, который вы ищете).
Теперь у вас должно быть что-то вроде этого:
Двойным щелчком объекта вы можете изменить текст на них. Или вы можете увидеть в правой нижней части свойства объекта, который вы сейчас находитесь, и найти свойство текста. Здесь вы также можете изменить имя.
Теперь, если вы сохраните и запустите (лучше нажмите кнопку редактирования, затем сохраните снова, чтобы убедиться, что ваши изменения сохранены), вы получаете:
А? Почему мой ярлык и кнопка такие, когда я бегу? Это потому, что в нашем центральном объекте нет макета. Кстати, если вы измените размер основного окна, вы увидите, что объект сохраняет свое место. Поэтому, чтобы исправить это, мы добавим макет. Скажем, вертикальный макет. Поэтому перетащите вертикальный макет из списка объектов слева. Теперь вы должны увидеть:
Итак, теперь щелкните правой кнопкой мыши в главном окне, где угодно, кроме метки и кнопки. c \ Щелкните по Lay out-> Lay Out Vertically. Теперь вы должны увидеть, что ваши объекты вертикально выровнены в вашем окне. Итак, теперь Move (с перетаскиванием снова), ваш ярлык и кнопка в макете. теперь вы должны получить:
В вашем дизайнере. И если вы запустите приложение:
Здесь вы можете увидеть свое приложение с меткой и кнопкой. И если вы измените размер своего окна, метка и кнопка тоже изменятся.
Но наша кнопка все еще ничего не делает. Мы можем изменить его двумя разными способами. Первый заключается в том, чтобы соединить кнопку с методом, который мы создали. Мы можем сделать это с именем метода connect. Итак, давайте вернемся к нашему коде и перейдем к mainwindow.cpp теперь добавим:
connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked()));
В конструкторе вашего MainWindow ПОСЛЕ ui->setupUI(this); которые инициализируют ui.
Затем мы можем создать MainWindow :: whenButtonIsClicked () в нашем классе .cpp, который может изменить текст метки следующим образом:
void MainWindow::whenButtonIsClicked() < ui->label->setText("the button has been clicked !"); >
И в нашем mainwindow.h нам нужно добавить:
public slots: void whenButtonIsClicked();
Открытые слоты означают, что этот метод можно вызвать, когда принимается сигнал. подключите сигнал, когда мы нажимаем кнопку и метод вызова.
Итак, теперь, если мы запустим наше приложение и нажмем на кнопку, получим:
Это означает, что наше соединение работает. Но с Qt Designer у нас есть еще более простой способ сделать это. Если вы хотите сделать другой способ, удалите соединение, чтобы отсоединить кнопку (потому что мы будем подключать ее по-другому), вернитесь к mainwindow.ui и щелкните правой кнопкой мыши по кнопке. Нажмите «Перейти в слот . », выберите «Щелкнуть» () и нажмите «ОК».
Затем вам следует перейти к этой функции:
void MainWindow::on_pushButton_clicked()
Это функция, которая будет вызываться, когда вы нажимаете на кнопку. Таким образом, вы можете добавить
ui->label->setText("it's even easier !");
Внутрь. Перейдите в mainwindow.h, чтобы сохранить изменения (когда вы делаете переход в слот, он создает метод, связанный с запросом сигнала. Он определяет функцию в .h, но не сохраняет ее. в файл и сохранить его).
И теперь, когда вы запускаете приложение и нажимаете кнопку, вы можете увидеть новое сообщение (если вы все еще видите старое, это значит, что вы не удалили соединение).
Мы также можем добавить int, double и т. Д. В наш ярлык благодаря QVariant который является удивительным классом, который может преобразовать многие вещи во многих других вещах. Поэтому слева добавьте int, который увеличивается, когда мы нажимаем кнопку.
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui < class MainWindow; >class MainWindow : public QMainWindow < Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); public slots: void whenButtonIsClicked(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; double _smallCounter; >; #endif // MAINWINDOW_H
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) < ui->setupUi(this); // connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(whenButtonIsClicked())); _smallCounter = 0.0f; > MainWindow::~MainWindow() < delete ui; >void MainWindow::whenButtonIsClicked() < ui->label->setText("the button has been clicked !"); > void MainWindow::on_pushButton_clicked() < _smallCounter += 0.5f; ui->label->setText("it's even easier ! " + QVariant(_smallCounter).toString()); >
И теперь, мы можем сохранить и запустить снова. Каждый раз, когда вы нажимаете на кнопку, она показывает «это еще проще!» Со значением _smallCounter. Поэтому у вас должно быть что-то вроде:
Это руководство сделано. Если вы хотите узнать больше о Qt, давайте посмотрим другие примеры и документацию Qt в документации StackOverflow или Qt Documentation