Основы программирования в Linux - Мэтью Нейл Страница 304
- Категория: Компьютеры и Интернет / Интернет
- Автор: Мэтью Нейл
- Страниц: 324
- Добавлено: 2020-09-22 15:22:12
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала
Основы программирования в Linux - Мэтью Нейл краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Основы программирования в Linux - Мэтью Нейл» бесплатно полную версию:В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов
Основы программирования в Linux - Мэтью Нейл читать онлайн бесплатно
<b>QBoxLayout::addLayout(QLayout *layout, int stretch = 0);</b>
Выполните упражнение 17.3.
Упражнение 17.3. Применение классов QBoxLayoutВ этом примере вы увидите в действии классы QBoxLayout при размещении виджетов QLabel в окне QMainWindow.
1. Сначала введите заголовочный файл LayoutWindow.h:
#include <qmainwindow.h>
class LayoutWindow : public QMainWindow {
QOBJECT
public:
LayoutWindow(QWidget *parent = 0, const char *name = 0);
virtual ~LayoutWindow();
};
2. Теперь введите реализацию в файл LayoutWindow.cpp:
#include <qapplication.h>
#include <qlabel.h>
#include <qlayout.h>
#include "LayoutWindow.moc"
LayoutWindow::LayoutWindow(QWidget* parent, const char *name) :
QMainWindow(parent, name) {
this->setCaption("Layouts");
3. Необходимо создать фиктивный QWidget для хранения объекта QHBoxLayout, поскольку его нельзя напрямую вставить в объект QMainWindow:
QWidget *widget = new QWidget(this);
setCentralWidget(widget);
QHBoxLayout *horizontal = new QHBoxLayout(widget, 5, 10, "horizontal");
QVBoxLayout *vertical = new QVBoxLayout();
QLabel* label1 = new QLabel("Top", widget, "textLabel1");
QLabel* label2 = new QLabel("Bottom", widget, "textLabel2");
QLabel* label3 = new QLabel("Right", widget, "textLabel3");
vertical->addwidget(label1);
vertical->addwidget(label2);
horizontal->addLayout(vertical);
horizontal->addWidget(label3);
resize(150, 100);
}
LayoutWindow::~LayoutWindow() { }
int main(int argc, char **argv) {
QApplication app(argc, argv);
LayoutWindow *window = new LayoutWindow();
app.setMainWidget(window);
window->show();
return app.exec();
}
Как и прежде, перед компиляцией нужно выполнить moc для заголовочного файла:
$ <b>moc LayoutWindow.h -о LayoutWindow.moc</b>
$ <b>g++ -о layout LayoutWindow.cpp -I$QTDIR/include -L$QTDIR/lib -lqui</b>
Выполнив эту программу, вы получите схему размещения ваших меток QLabel (рис. 17.4). Попробуйте изменить величину окна и посмотрите, как расширяются и сжимаются метки, заполняя все доступное пространство.

Рис. 17.4
Как это работает
Программа LayoutWindow.cpp создает два виджета упаковочных контейнеров, горизонтальный и вертикальный контейнер для размещения виджетов. Вертикальный контейнер получает две метки, описанные, соответственно, как Top и Bottom. Горизонтальный контейнер также содержит два виджета, метку, обозначенную Right, и вертикальный контейнер. Вы можете помещать компоновочные виджеты внутрь других компоновочных виджетов, как показано в данном примере.
Попробуйте изменить исходный текст программы в файле LayoutWindow.срр, чтобы поэкспериментировать и лучше понять, как работают компоновочные виджеты.
Мы рассмотрели основы применения Qt — сигналы и слоты, команду moc и средства компоновки. Теперь пора более внимательно изучить виджеты.
Виджеты Qt
Для каждого случая в Qt есть виджеты, и их подробное рассмотрение займет всю оставшуюся часть книги. В этом разделе мы познакомимся с виджетами Qt общего применения, включая виджеты для ввода данных, кнопки, обычные и раскрывающиеся списки.
QLineEdit
QLineEdit — виджет для ввода однострочного текста. Применяйте его для ввода коротких фрагментов текста, таких как имя пользователя. В виджете QLineEdit можно ограничить длину вводимого текста с помощью маски ввода, предлагающей заполнить шаблон, или для дополнительного контроля можно применить функцию проверки допустимости, например, чтобы убедиться в том, что пользователь вводит корректные дату, номер телефона или подобные величины. У виджета QLineEdit есть функции редактирования, позволяющие выбирать части текста, вырезать и вставлять, отменять и повторять изменения, как командами пользователя, так и средствами API.
Далее перечислены конструкторы и наиболее полезные методы.
<b>#include <qlineedit.h></b>
<b>QLineEdit::QLineEdit(QWidget *parent, const char* name = 0);</b>
<b>QLineEdit::QLineEdit(const QString& contents, QWidget *parent,</b>
<b> const char *name = 0);</b>
<b>QLineEdit::QLineEdit(const QString& contents, const QString& inputMask,</b>
<b> QWidget *parent, const char* name = 0);</b>
<b>void setInputMask(const QString& inputMask);</b>
<b>void insert(const QString& newText);</b>
<b>bool isModified(void);</b>
<b>void setMaxLength(int length);</b>
<b>void setReadOnly(bool read);</b>
Жалоба
Напишите нам, и мы в срочном порядке примем меры.