-->

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

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

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

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

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

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

 QPushButton* button = new QPushButton("Ok", widget, "button");

 vbox->addWidget(button);

 resize(350, 200);

 connect(button, SIGNAL(clicked()), this, SLOT(Clicked()));

}

5. Затем приведен удобный метод для вывода состояния заданной кнопки

QButton
:

void Buttons::PrintActive(QButton *button) {

 if (button->isOn())

  std::cout << button->name() << " is checkedn";

 else

  std::cout" << button->name() << " is not checkedn";

}

void Buttons::Clicked(void) {

 PrintActive(checkbox);

 PrintActive(radiobutton1);

 PrintActive(radiobutton2);

 std::cout << "n";

}

int main(int argc, char **argv) {

 QApplication app(argc, argv);

 Buttons *window = new Buttons();

 app.setMainWidget(window);

 window->show();

 return app.exec();

}

Как это работает

Этот простой пример показывает, как опрашивать виджеты кнопок Qt разных типов. После создания все они по большей части действуют одинаково. Например, функция

PrintActive
демонстрирует, как получить состояние кнопки (включена или выключена). Обратите внимание на то, как она действует в случае запоминающих состояние кнопок разных типов, таких как флажки и переключатели (радиокнопки). В основном отличаются только вызовы для создания виджета кнопки. Радиокнопки, наиболее сложные (т.к. только одна в группе может быть включена), при создании требуют больше всего работы. В случае радиокнопок вы должны создать
QButtonGroup
для того, чтобы гарантировать активность только одной радиокнопки в группе в любой момент времени.

QComboBox

Переключатели (радиокнопки) — отличный способ, позволяющий пользователю выбрать из небольшого числа вариантов, скажем шести или меньше. Если вариантов больше шести, ситуация начинает выходить из-под контроля и становится еще более напряженной, когда количество вариантов растет, что приводит к ощутимому увеличению размера окна. В этом случае прекрасным решением может быть использование поля ввода с раскрывающимся меню, также называемое раскрывающимся списком (combo box). Варианты выводятся, когда вы щелкаете кнопкой мыши и открываете меню и количество вариантов при этом ограничено только удобством поиска в списке.

В виджете

QComboBox
сочетаются функциональные возможности виджетов
QLineEdit
и
QPushButton
и раскрывающихся меню, позволяя выбрать один вариант из неограниченного набора вариантов.

QComboBox
может быть открытым, как для чтения и записи, так и только для чтения. Если он позволяет читать и записывать, пользователь может ввести новый вариант в дополнение к предлагаемым; в противном случае пользователь ограничен выбором варианта из раскрывающегося списка.

При создании виджета

QComboBox
можно указать, открыт ли он для чтения и записи или только для чтения, задавая логическое значение в конструкторе:

QComboBox *combo = new QComboBox(TRUE, parent, "widgetname");

Передача значения

TRUE
переводит
QComboBox
в режим "чтение/запись". Остальные параметры — обычный указатель на родительский виджет и имя создаваемого виджета.

Как все виджеты Qt,

QComboBox
обладает гибкостью и предлагает широкий набор функциональных возможностей.

Вы можете добавлять варианты по одному или набором, как тип

QString
или в стандартном формате
char*
.

Для вставки одного варианта вызовите функцию

insertItem
:

combo->insertItem(QString("An Item"), 1);

Приведенная функция принимает объект типа

QString
и номер позиции в списке. В данном случае 1 вставляет вариант в список первым.

Для добавления в конец списка задайте любое отрицательное целое число.

Гораздо чаще вы будете вставлять несколько элементов списка одновременно, для этого можно применить класс

QStrList
или, как показано далее, массив
char*
:

char* weather[] = {"Thunder", "Lightning", "Rain", 0};

combo->insertStrList(weather, 3);

И снова вы можете задать номер позиции вставляемых в список элементов.

Если в виджете

QComboBox
задан режим "чтение/запись", вводимые пользователем варианты могут автоматически вставляться в список. Это очень полезное, экономящее время свойство, избавляющее пользователя от повторного набора варианта, если он хочет уже введенный вариант использовать несколько раз.

Метод

InsertionPolicy
управляет позицией вводимого в список элемента. Вы можете выбрать одно из значений, приведенных в табл. 17.4.

Таблица 17.4

Значение Действие
QComboBox::AtTop
Вставляет вводимый в список элемент первым
QComboBox::AtBottom
Вставляет вводимый в список элемент последним
QComboBox::AtCurrent
Заменяет предварительно выбранный вариант в списке
QComboBox::BeforeCurrent
Вставляет вводимый элемент перед предварительно выбранным вариантом из списка
QComboBox::AfterCurrent
Вставляет вводимый элемент после предварительно выбранного варианта из списка
QComboBox::NoInsertion
Новый элемент не вставляется в список вариантов
Перейти на страницу:
Комментариев (0)
название