Qt:Документация 4.3.2/tutorial-t2
Материал из Wiki.crossplatform.ru
Внимание: Актуальная версия перевода документации находится здесь |
__NOTOC__
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции |
[Предыдущая: Часть 1 ] [ Учебное пособие ] [Следующая: Часть 3 ]
Содержание |
Урок 2 - Кнопка выход
Файлы:
После создания окна в первой главе, мы дадим возможность пользователю завершать работу приложения по нажатию на кнопку.
Также мы настроим шрифт на кнопке, выбрав более привлекательный вариант, чем нам предлагается по умолчанию.
#include <QApplication> #include <QFont> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton quit("Quit"); quit.resize(75, 30); quit.setFont(QFont("Times", 18, QFont::Bold)); QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit())); quit.show(); return app.exec(); }
Строчка за строчкой
#include <QFont>
Так как мы будем работать с классом QFont, то нам необходимо его определить, подключив <QFont>.
QPushButton quit("Quit");
В этом приложении на кнопке будет написано Quit, это означает, что при нажатии на неё приложение будет завершать работу.
quit.resize(75, 30);
Мы назначаем другой размер кнопки, так как слово Quit имеет меньше символов, чем фраза "Hello world!". Вообще, при создании кнопок, мы можем использовать метод QFontMetrics для получения минимальной длины слова (фразы) в пикселях или доверить QPushButton самой определить размер кнопки.
quit.setFont(QFont("Times", 18, QFont::Bold));
В этой строчке мы выбираем шрифт для надписи, а также определяем его размер и стиль. Мы можем переопределить шрифт по умолчанию для всего приложения Qt, используя метод QApplication::setFont().
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
QObject::connect() является, возможно, самой главной особенностью Qt. Заметьте что метод connect()является статическим методом в классе QObject. Не перепутайте этот метод с функцией connect(), которая входит в библиотеку для работу с сокетами.
Вызов метода connect() создаёт однонаправленную связь двух объектов Qt (которые наследуют QObject или его потомков). Любой Qt-объект может иметь и сигналы (для отправки сообщений), и слоты (для приёма сообщений). Все виджеты являются Qt-объектами, так как они являются наследниками QWidget, который, в свою очередь, наследует QObject.
Здесь сигнал clicked() кнопки quit соединяется со слотом quit() объекта app, в результате при нажатии кнопки приложение завершает работу.
За более подробной информацией обращайтесь к разделу документации Сигналы и слоты.
Запуск приложения
После запуска приложения вы увидите окно, меньшее по размерам, чем в предыдущем примере, и меньшую по размерам кнопку.
Компиляция программы осуществляется также как и в первой главе.
Домашнее задание
Попробуйте изменить размер окна. Нажмите на кнопку, чтобы закрыть приложение.
Посмотрите, какие еще сигналы вы можете связывать с экземплятором объекта QPushButton? [Подсказка: класс QPushButtonнаследует большинство функциональных возможностей класса QAbstractButton.]
[Предыдущая: Часть 1 ] [ Учебное пособие ] [Следующая: Часть 3 ]
Copyright © 2007 Trolltech | Trademarks | Qt 4.3.2
|