Области с прокруткой
Области с прокруткой
Класс QScrollArea содержит область отображения, которую можно прокручивать, и две полосы прокрутки. Если мы хотим добавить в виджет полосы прокрутки, значительно проще использовать класс QScrollArea, чем создавать свои собственные экземпляры QScrollBar и самим реализовывать функциональность скроллинга.
Рис. 6.11. Виджеты, составляющие область с прокруткой QScrollArea.
Способ применения QScrollArea состоит в следующем: вызывается функция setWidget() с виджетом, к которому мы хотим добавить полосы прокрутки. QScrollArea автоматически делает этот виджет дочерним (если он еще не является таковым) по отношению к области отображения (он доступен при помощи функции QScrollArea::viewport()). Например, если мы хотим иметь полосы прокрутки вокруг виджета IconEditor, который мы разработали в главе 5, мы можем написать такую программу:
01 int main(int argc, char *argv[])
02 {
03 QApplication app(argc, argv);
04 IconEditor *iconEditor = new IconEditor;
05 iconEditor->setIconImage(QImage(":/images/mouse.png"));
06 QScrollArea scrollArea;
07 scrollArea.setWidget(iconEditor);
08 scrollArea.viewport()->setBackgroundRole(QPalette::Dark);
09 scrollArea.viewport()->setAutoFillBackground(true);
10 scrollArea.setWindowTitle(QObject::tr("Icon Editor"));
11 scrollArea.show();
12 return app.exec();
13 }
Рис. 6.12. Изменение размеров области с прокруткой QScrollArea.
QScrollArea при отображении виджета использует его текущий или идеальный размер, если размеры виджета еще ни разу не изменялись. Делая вызов setWidgetResizable(true), мы указываем QScrollArea на необходимость автоматического изменения размеров виджета, чтобы можно было воспользоваться любым дополнительным пространством за пределами его идеальных размеров.
По умолчанию полосы прокрутки видны на экране только в том случае, когда область отображения меньше дочернего виджета. Мы можем сделать полосы прокрутки постоянно видимыми при помощи установки следующих политик полос прокрутки:
scrollArea.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
QScrollArea большую часть своей функциональности наследует от QAbstractScrollArea. Такие классы, как QTextEdit и QAbstractItemView (базовый класс для классов отображения элементов в Qt), являются производными от QAbstractScrollArea, поэтому нам не надо для них формировать оболочку из QScrollArea для получения полос прокрутки.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Области памяти
Области памяти Области памяти (memory areas) представляются с помощью объектов областей памяти, которые хранятся в структурах типа vm_area_struct. Эта структура определена в файле <linux/mm.h>. Области памяти часто называются областями виртуальной памяти (virtual memory area, или VMA).Структура
Параметры переполнения. Контейнеры с прокруткой
Параметры переполнения. Контейнеры с прокруткой Ни у одного из контейнеров, формирующих дизайн нашей Web-страницы, мы не задали явную высоту. Web-обозреватель сам установит для контейнеров такие значения высоты, чтобы они вместили свое содержимое полностью.Но что случится,
Области данных
Области данных Области данных содержат записи базы данных. Все записи одной области данных схожи: однородны и имеют фиксированную длину. Записи хранятся в порядке их поступления, и все удаленные записи по-прежнему занимают место.Объект «область данных» состоит из
Области
Области В SCO UNIX адресное пространство процесса разделено на несколько участков, называемых областями (region). Область представляет собой непрерывный участок виртуального адресного пространства процесса, который рассматривается ядром системы как отдельный объект,
6.5.2 Выделение области
6.5.2 Выделение области Ядро выделяет новую область (по алгоритму allocreg, Рисунок 6.18) во время выполнения системных функций fork, exec и shmget (получить разделяемую память). Ядро поддерживает таблицу областей, записям которой соответствуют точки входа либо в списке свободных
6.5.5 Загрузка области
6.5.5 Загрузка области В системе, где поддерживается подкачка страниц по обращению, ядро может «отображать» файл в адресное пространство процесса во время выполнения функции exec, подготавливая последующее чтение по запросу отдельных физических страниц (см. главу 9). Если же
6.5.6 Освобождение области
6.5.6 Освобождение области Если область не присоединена уже ни к какому процессу, она может быть освобождена ядром и возвращена в список свободных областей (Рисунок 6.25). Если область связана с индексом, ядро освобождает и индекс с помощью алгоритма iput, учитывая значение
Определение области
Определение области Как правило, для определения областей в файлы krb5.conf и kdc.conf включаются специальные записи. Отредактировав файл, рассмотренный выше в качестве примера, вы измените конфигурацию KDC, серверов приложений и клиентов. Для того чтобы изменения были учтены
Администрирование области
Администрирование области Отредактировав конфигурационные файлы Kerberos и вызвав kdb5_util для создания основного ключа и инициализации базы данных Kerberos, можно приступать к администрированию области. Этот процесс в основном сводится к определению принципалов. Для выполнения
Параметры переполнения. Контейнеры с прокруткой
Параметры переполнения. Контейнеры с прокруткой Ни у одного из контейнеров, формирующих дизайн нашей Web-страницы, мы не задали явную высоту. Web-обозреватель сам установит для контейнеров такие значения высоты, чтобы они вместили свое содержимое полностью.Но что случится,
Не пользуйтесь прокруткой без необходимости!
Не пользуйтесь прокруткой без необходимости! Одна строка окна программного кода может содержать примерно 300 символов (наверное, вы удивитесь, если я скажу, что максимальное число символов равно 308), так что при желании можно вместить в одну строку довольно длинный
Области применения. NET
Области применения. NET Как и было заявлено Microsoft с самого начала обнародования сведений о. NET, этот набор технологий в первую очередь адресован программистам, которые работают с веб-приложениями, и предназначен для создания расширяемых распределенных приложений, которые,
Области значений
Области значений Область значений — это интервал от минимального до максимального значения, которое может быть представлено в переменной данного типа. В таблице 3.3 приведен размер занимаемой памяти и области значений переменных для каждого типа. Поскольку переменных
Области
Области CombineRgn Функция CombineRgn объединяет две области и сохраняет результат в третьей. Две области объединяются согласно указанному режиму объединения. int CombineRgn ( HRGN hrgnDest , // дескриптор результирующей области HRGN hrgnSrc 1 , // дескриптор исходной области HRGN hrgnSrc 2 , // дескриптор