-->

Основы программирования в Linux

На нашем литературном портале можно бесплатно читать книгу Основы программирования в Linux, Мэтью Нейл-- . Жанр: Программирование / ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Основы программирования в Linux
Название: Основы программирования в Linux
Дата добавления: 16 январь 2020
Количество просмотров: 660
Читать онлайн

Основы программирования в Linux читать книгу онлайн

Основы программирования в Linux - читать бесплатно онлайн , автор Мэтью Нейл
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

<b>#include &lt;qcheckbox.h&gt;</b>

<b>QCheckBox(QWidget *parent, const char *name = 0);</b>

<b>QCheckBox(const QString&amp; text, QWidget *parent, const char *name = 0);</b>

<b>bool QCheckBox::isChecked();</b>

<b>void QCheckBox::setTristate(bool y = TRUE);</b>

<b>bool QCheckBox::isTristate();</b>

QRadioButton

Радиокнопки — кнопки-переключатели, применяемые для отображения исключающего выбора, когда можно выбрать только один вариант из группы представленных (вспомните снова старые автомобильные радиоприемники, в которых можно было нажать только одну кнопку блока). Сами по себе кнопки

QRadioButton
не многим отличаются от кнопок
QCheckBox
, поскольку группировка и исключительный выбор обрабатываются классом
QButtonGroup
, главное же их отличие заключается в том, что они отображаются как круглые кнопки, а не как флажки.

QButtonGroup
— виджет, облегчающий обработку групп кнопок за счет предоставления удобных методов.

<b>#include &lt;qbuttongroup.h&gt;</b>

<b>QButtonGroup(QWidget *parent = 0, const char* name = 0);</b>

<b>QButtonGroup(const QString&amp; title, QWidget* parent = 0,</b>

<b> const char * name = 0);</b>

<b>int insert (QButton *button, int id = -1);</b>

<b>void remove(QButton *button);</b>

<b>int id(QButton *button) const;</b>

<b>int count() const;</b>

<b>int selectedId() const;</b>

Применять виджет

QButtonGroup
проще простого: он даже предлагает необязательную рамку вокруг кнопок, если используется конструктор
title
.

Добавить кнопку в

QButtonGroup
можно с помощью метода
insert
или заданием
QButtonGroup
в качестве родительского виджета кнопки. Для уникального обозначения каждой кнопки в группе можно задать
id
в методе
insert
. Это особенно полезно при определении выбранной кнопки, т.к. функция
selectedId
возвращает
id
выбранной кнопки.

Все кнопки

QRadioButton
, добавляемые в группу, автоматически становятся кнопками с исключающим выбором.

Далее приведены прототипы конструкторов

QRadioButton
и одного уникального метода, который не вызовет большого удивления:

<b>#include &lt;qradiobutton.h&gt;</b>

<b>QRadioButton(QWidget* parent, const char* name = 0);</b>

<b>QRadioButton(const QString&amp; text, QWidget *parent, const char *name = 0);</b>

<b>bool QRadioButton::isChecked();</b>

Выполните упражнение 17.5.

Упражнение 17.5. Виджет
QButton

Теперь применим полученные знания в примере с кнопками Qt. Приведенная далее программа создает кнопки разных типов (радиокнопки, флажки и простые кнопки), чтобы показать, как использовать эти виджеты в ваших приложениях.

1. Введите файл Buttons.h:

#include &lt;qmainwindow.h&gt;

#include &lt;qcheckbox.h&gt;

#include &lt;qbutton.h&gt;

#include &lt;qradiobutton.h&gt;

class Buttons : public CMainWindow {

 Q_OBJECT

public:

 Buttons(QWidget *parent = 0, const char *name = 0);

2. Вы запросите состояние ваших кнопок позже, в функции слота, поэтому объявите указатели кнопок и вспомогательную функцию

PrintActive
с атрибутом private в объявлении класса:

private:

 void PrintActive(QButton *button);

 QCheckBox *checkbox;

 QRadioButton *radiobutton1, *radiobutton2;

private slots:

 void Clicked();

}

3. Далее следует файл Buttons.срр:

#include &quot;Buttons.moc&quot;

#include &lt;qbuttongroup.h&gt;

#include &lt;qpushbutton.h&gt;

#include &lt;qapplication.h&gt;

#include &lt;qlabel.h&gt;

#include &lt;qlayout.h&gt;

#include &lt;iostream&gt;

Buttons::Buttons(QWidget *parent, const char *name) :

 QMainWindow(parent, name) {

 QWidget* widget = new QWidget(this);

 setCentralWidget(widget);

 QVBoxLayout *vbox = new QVBoxLayout(widget, 5, 10, &quot;vbox&quot;);

 checkbox = new QCheckBox(&quot;CheckButton&quot;, widget, &quot;check&quot;);

 vbox-&gt;addWidget(checkbox);

4. Затем вы создаете

QButtonGroup
для двух ваших радиокнопок (переключателей).

 QButtonGroup *buttongroup = new QButtonGroup(0);

 radiobutton1 = new QRadioButton(&quot;RadioButton1&quot;, widget, &quot;radio1&quot;);

 buttongroup-&gt;insert(radiobutton1);

 vbox-&gt;addWidget(radiobutton1);

 radiobutton2 = new QRadioButton(&quot;RadioButton2&quot;, widget, &quot;radio2&quot;);

 buttongroup-&gt;insert(radiobutton2);

 vbox-&gt;addWidget(radiobutton2);

Перейти на страницу:
Комментариев (0)
название