Основы программирования в Linux - Мэтью Нейл
0/0

Основы программирования в Linux - Мэтью Нейл

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 303 304 305 306 307 308 309 310 311 ... 324

<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);

1 ... 303 304 305 306 307 308 309 310 311 ... 324
На этой странице вы можете бесплатно читать книгу Основы программирования в Linux - Мэтью Нейл бесплатно.

Оставить комментарий

Рейтинговые книги