Связь между потоками с помощью высылки событий
Связь между потоками с помощью высылки событий Высылка событий — это еще одна из возможностей для осуществления связи между объектами. Как мы знаем, есть два метода для высылки событий: QCoreApplication::postEvent() и QCoreApplication::sendEvent(). Здесь есть небольшой нюанс, который нужно знать: высылка событий методом postEvent() обладает надежностью в потоках, а при помощи метода sendEvent() — нет. Поэтому […]
QStatusBar — строка состояния
QStatusBar — строка состояния Этот виджет располагается в нижней части главного окна и отображает, как правило, текстовые сообщения для предоставления информации о состоянии приложения или выдачи справки о командах меню или кнопках панелей инструментов. Строку состояния реализует класс QStatusBar, определенный в заголовочном файле QStatusBar. Различают следующие типы сообщений: промежуточный — вызывается методом showMessage(). Для очистки […]
QFileDialog — диалоговое окно выбора файлов
Использование стандартных диалоговых окон в Qt Использование стандартных окон значительно ускоряет разработку тех приложений, в которых необходимо использовать стандартные диалоговые окна выбора файлов, шрифта, цвета и т. д. Вместо того, чтобы тратить время на разработку своих собственных классов, можно воспользоваться готовыми классами библиотеки Qt. К достоинствам стандартных диалоговых окон можно отнести целостность пользовательского интерфейса, так […]
Создание тестов в Qt
Создание тестов в Qt Тесты полезно создавать до начала реализации кода. Это позволит вам принаписании теста лучше осмыслить и понять задачу, задав себе вопрос — что нужно сделать для добавления реализации. Для демонстрации возьмем простой пример: предположим, нам нужно реализовать класс с методами для нахождения максимума и минимума двух чисел. Первая задача заключается в подготовке […]
Создание SDI-приложений в Qt
Создание SDI-приложений в Qt Типичным примером SDI-приложения является программа ОС Windows Notepad (Блокнот). Пример, приведенный в листинге ниже, реализует упрощенный вариант этой программы, представляющей собой текстовый редактор. Результат показан на рисунке. #ifndef _DocWindow_h_ #define _DocWindow_h_ #include <QTextEdit> class DocWindow: public QTextEdit { Q_OBJECT private: QString m_strFileName; public: DocWindow(QWidget* pwgt = 0); signals: void changeWindowTitle(const QString&); […]
Создание собственных диалоговых окон
Создание собственных диалоговых окон При запуске на экране окно с кнопкой Press Me (Нажми меня), нажатие на которую отображает диалоговое окно ввода имени First Name (Имя) и фамилии Last Name (Фамилия). // Файл main.cpp #include <QApplication> #include «StartDialog.h» int main(int argc, char** argv) { QApplication app(argc, argv); StartDialog startDialog; startDialog.setMinimumWidth(200); startDialog.show(); return app.exec(); } В […]
Создание расширения для приложения
Создание расширения для приложения Теперь, когда мы имеем приложение, поддерживающее систему расширений, самое время создать для него хотя бы один компонент расширения. TEMPLATE = lib CONFIG += plugin QT -= gui DESTDIR = ../plugins SOURCES = MyPlugin.cpp HEADERS = MyPlugin.h ../Application/interfaces.h TARGET = myplugin Для создания расширения в секции CONFIG pro-файла необходимо добавить опцию plugin, […]
Создание меню в Qt с помощью QMenu
Создание меню в Qt с помощью QMenu Меню является важной и неотъемлемой частью практически любого приложения. Оно находится в верхней части главного окна приложения и представляет собой секцию для расположения большого количества команд, из которых пользователь может выбирать нужную. В приложениях используются меню четырех основных типов: меню верхнего уровня; всплывающее меню; отрывное меню, которое можно […]
Создание MDI-приложений в Qt
Создание MDI-приложений в Qt MDI-приложение позволяет пользователю работать с несколькими открытыми документами. По своей сути оно очень напоминает обычный рабочий стол, только в виртуальном исполнении. Пользователь может разложить в его области несколько окон документов, или свернуть их. Окна документов могут перекрываться друг другом, а также могут быть развернуты во всю рабочую область. Рабочая область, внутри […]
Создание динамической библиотеки
Создание динамической библиотеки Следующий пример демонстрирует создание динамической библиотеки, содержащей только одну функцию. TEMPLATE = lib DESTDIR = .. QT -= gui SOURCES = dynlib.cpp HEADERS = dynlib.h TARGET = dynlib Обратите внимание на файл проекта. Для создания динамической библиотеки нужно установить в секции TEMPLATE значение lib. Расположение готовой библиотеки будет на один уровень выше […]