Пример 3: Программа, которая иллюстрирует использование стандартных сигналов и слотов

В качестве примера создадим программу, которая отображает введенное целое десятичное число или в двоичном, или в восьмеричном, или в десятичном или в шестнадцатеричном виде. Это легко сделать с помощью элемента LCD Number, который предназначен для отбражени чисел в виде жидко-кристаллического экранчика.

Создайте проект на базе класса QWidget. Спро­ектируйте окно как показано на рисунке, используя элементы: Label, Line Edit, 4 Push Buttons, LCD Number.

В свойствах LCD Number установите: segment Style: Flat, digitCount: 20 (количество сегментов экра­на, т.е. максимальное количество отображаемых цифр). Чем больше задать количество цифр, тем они будут мельче).

Задавать число мы будем с помощью элемента Line Edit. При изменениии числа в окне Line Edit должно изменяться значение в LCD Number. Для обес­печения этой связи можно использовать окно, которое располагается под проектом вида окна. Перейдите на вкладку Signals & Slots Editor и нажмите +. В список связей будет добавлена новая строка. Сделайте двойной щелчок в появившейся строке в первом поле <sender>. В появившемся списке выберите элемент lineEdit. Повторите эти действия в других полях так, чтобы связь была задана как показано на рисунке.

В результате при изменении содержимого элемента Line Edit будет автоматически изменяться содержимое элемента LCD Number.

Добавьте слот для кнопки <bin> и напишите в нем код как показано ниже. Повторите эти действия для других кнопок.

void Widget::on_pushButton_clicked()

{

ui->lcdNumber->setMode(QLCDNumber::Bin); // двоичное представление

ui->lineEdit->setFocus();

}

void Widget::on_pushButton_2_clicked()

{

ui->lcdNumber->setMode(QLCDNumber::Oct);

       // восьмеричное представление

ui->lineEdit->setFocus();

}

void Widget::on_pushButton_3_clicked()

{

ui->lcdNumber->setMode(QLCDNumber::Dec); // десятичное представление

ui->lineEdit->setFocus();

}

void Widget::on_pushButton_4_clicked()

{

ui->lcdNumber->setMode(QLCDNumber::Hex); // 16-е представление

ui->lineEdit->setFocus();

}

Запустите программу и проверьте работу приложения. 

Обратите внимание на то, что в заголовке окна появилась кнопка «свернуть окно» (её не было в диалоговом окне), но теперь окно появляется в углу экрана. Откройте файл main.cpp и отредактируйте его так, как показано ниже.

 #include <QtGui/QApplication>

#include "widget.h"

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

Widget w;

 w.move(400,300); // перемещаем окно в центр экрана

w.show();

return a.exec();

}

Запустите программу.

Закройте проект.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: