![]() |
Главная · Все классы · Основные классы · Классы по группам · Модули · Функции | ![]() |
[Предыдущий: Урок 1] [Учебное пособие] [Следующий: Урок 3]
Файлы:
После создания окна в первой главе, мы дадим возможность пользователю завершать работу приложения по нажатию на кнопку.
Также мы настроим шрифт на кнопке, выбрав более привлекательный вариант, чем тот что предлагается по умолчанию.
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #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));
В этой строчке мы выбираем шрифт для надписи, а именно полужирный шрифт Times размером в 18 пунктов. Мы можем переопределить шрифт по умолчанию для всего приложения Qt, используя метод QApplication::setFont().
QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
QObject::connect() является, возможно, самой существенной особенностью Qt. Обратите внимание на то, что метод connect() является статической функцией в классе QObject. Не перепутайте этот метод с функцией connect(), которая входит в библиотеку Berkeley для работы с сокетами.
Вызов метода connect() создаёт однонаправленную связь двух объектов Qt (которые унаследованы от QObject или его потомков, непосредственно или косвенно). Любой Qt-объект может иметь и сигналы (для отправки сообщений), и слоты (для приёма сообщений). Все виджеты являются Qt-объектами, так как они являются наследниками QWidget, который, в свою очередь, унаследован от QObject.
Здесь сигнал clicked() кнопки quit соединяется со слотом quit() объекта app, в результате при нажатии кнопки приложение завершает работу.
За более подробной информацией обращайтесь к разделу документации Сигналы и слоты.
После запуска приложения вы увидите окно, меньшее по размерам, чем в предыдущем уроке, и меньшую по размерам кнопку.
Компиляция программы осуществляется также как и в Уроке 1.
Попробуйте изменить размеры окна. Нажмите на кнопку, чтобы закрыть приложение.
Посмотрите, какие еще сигналы вы можете связывать с экземпляром объекта QPushButton? [Подсказка: класс QPushButton наследует большинство функциональных возможностей класса QAbstractButton.]
[Предыдущий: Урок 1] [Учебное пособие] [Следующий: Урок 3]
Copyright © 2008 Trolltech | Торговые марки | Qt 4.3.5 |