02. Работа с файлами
Свел в таблицу основные команды терминальной программы ОС Linux для работы с файлами с описанием.
01. Базовые команды
Свел в таблицу базовые команды терминальной программы ОС Linux с описанием
00. Команды терминала Linux
В ОС Linux можно пользоваться графической оболочкой, но для ряда задач удобно использовать терминал + если делается некоторый вычислитель, то не всегда разумно добавлять в него графическое окружение (она потребляет много ресурсов). Для этого используется терминальная программа linux (на большинстве ОС вызывается командой ctrl+alt+t) и в нее прописываются необходимые команды, их вместе с описанием я […]
Диалоговые окна
Не стоит создавать собственные диалоговые окна для вывода сообщений на экран, ведь для этого можно воспользоваться уже готовыми окнами, предоставляемыми классом QMessageBox. Окно сообщения — это самый простой элемент пользовательского интерфейса, который отображает текстовое сообщение и ожидает реакции со стороны пользователя. Его основное назначение состоит в информировании о совершении определенного события. Все окна, предоставляемые классом […]
Локализация диалоговых окон
Для того, чтобы все элементы диалоговых окон были локализованы, необходимо загрузить системную локаль. Сделать это можно с помощью следующего кода в файле main.cpp: … #include <QTranslator> #include <QLocale> #include <QLibraryInfo> … QApplication app(argc, argv); QString translatorFileName = QLatin1String(«qt_»); translatorFileName += QLocale::system().name(); QTranslator *translator = new QTranslator(&app); if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) app.installTranslator(translator); MainWindow w; w.show(); return app.exec();
Создание тестов графического интерфейса
Создание тестов графического интерфейса QTestLib предоставляет механизм для тестирования графического интерфейса. Предположим, что мы хотим протестировать поведение виджета однострочного текстового поля QLineEdit. Прежде всего нам потребуется создать класс, содержащий тестовый метод. В реализации тестового метода edit() мы создаем виджет QLineEdit. Затем мы имитируем ввод «ABCDEFGH», используя метод QTest::keyClicks(), который имитирует нажатия на серию клавиш клавиатуры. В необязательных параметрах этого […]
Взаимные блокировки
Взаимные блокировки Работая с многопоточностью, нужно помнить о возможном возникновении тупиковых ситуаций, когда потоки могут заблокировать друг друга. Представьте себе такую ситуацию, когда поток заблокировал ресурс А, а после работы над ним собирается работать с ресурсом В. Другой же поток заблокировал ресурс В и по окончании намеревается работать с ресурсом А. И вот один из […]
XML и Qt
XML и Qt Библиотека Qt очень активно использует формат XML. Например, Ot Designer сохраняет файлы пользовательского интерфейса именно в этом формате. Также он используется утилитами Qt, предназначенными для интернационализации приложений. Поддержка XML в Qt — это отдельный модуль QtXml, для использования которого необходимо указать его имя в проектном файле. Просто добавьте следующую строку: QT += […]
Таймер в Qt
Таймер в Qt В программах часто возникает потребность в периодическом повторении определенных действий через заданные промежутки времени. Конечно, в некоторых случаях, для задания временного интервала вызова функции, можно воспользоваться и объектом класса QTime и сделать примерно следующее: QTime time; time.start(); for(;time.elapsed() < 1000;) {} function(); Но такой подход обладает огромным недостатком. Исполнение цикла на секунду […]
Тесты с передачей данных
Тесты с передачей данных До настоящего момента мы вписывали данные для проведения теста в макрос QCOMPARE(). Подобный подход вызывает нежелательный эффект дублирования кода. Для минимизации дублирования кода QtTestLib предоставляет возможность проведения тестов с передачей данных. Такой подход позволяет отделить тестовый код от данных, поместив их в отдельное место. Этим местом является слот, который предоставляется для […]