Скачать презентацию GUI в Qt Виджеты Атомарная единица Скачать презентацию GUI в Qt Виджеты Атомарная единица

2 - GUI.pptx

  • Количество слайдов: 7

GUI в Qt GUI в Qt

Виджеты • Атомарная единица пользовательского интерфейса: • Получают сообщения от клавиатуры, мыши и другие Виджеты • Атомарная единица пользовательского интерфейса: • Получают сообщения от клавиатуры, мыши и другие • Рисуют себя на экране • Имеют прямоугольную форму • Отсортированы по глубине (Z-order) • Видимая область обрезается по границам родительского виджета и виджетов, которые находятся перед ним. • Виджет, который не входит в другой виджет, называется окном. • Окна обычно имеют заголовок и толстую рамку. • Все виджеты в Qt унаследованы от класса QWidget

Дочерние виджеты • Виджет без родителей – окно верхнего уровня. • Заголовок устанавливается set. Дочерние виджеты • Виджет без родителей – окно верхнего уровня. • Заголовок устанавливается set. Window. Title() • Иконка устанавливается set. Window. Icon() • Виджеты, которые не являются окнами, отображаются внутри своих родительских виджетов.

Расположение виджетов - QLayout QHBox. Layout QVBox. Layout QGrid. Layout QForm. Layout Расположение виджетов - QLayout QHBox. Layout QVBox. Layout QGrid. Layout QForm. Layout

Размер виджетов • Минимальный размер • minimal. Size • Максимальный размер • maximal. Size Размер виджетов • Минимальный размер • minimal. Size • Максимальный размер • maximal. Size • Предпочтительный размер • size. Hint • Стратегия размера • size. Policy: • horizontal. Policy • vertical. Policy • horizontal. Stretch • vertical. Stretch

Стратегии размера Стратегия Описание QSize. Policy: : Fixed Допустим только размер, заданный size. Hint. Стратегии размера Стратегия Описание QSize. Policy: : Fixed Допустим только размер, заданный size. Hint. QSize. Policy: : Minimum size. Hint – минимальный и достаточный. Можно делать больше, но это не даёт преимуществ. QSize. Policy: : Maximum size. Hint – максимально допустимый размер. Может уменьшаться, если место требуется другим. QSize. Policy: : Preferred size. Hint – оптимален. Можно уменьшить, если нужно. Можно увеличить, но это не даёт преимуществ. QSize. Policy: : Expanding size. Hint – хороший размер. Допустимо уменьшать. Желательно увеличить на всё доступное место. QSize. Policy: : Minimum. Expanding Меньше size. Hint нельзя. Желательно увеличить на всё доступное место. QSize. Policy: : Ignored size. Hint игнорируется. Виджет занимает всё доступное место.

Алгоритм определения размера Каждому виджету выделяется место согласно size. Hint и стратегии размера. 2. Алгоритм определения размера Каждому виджету выделяется место согласно size. Hint и стратегии размера. 2. Если есть виджеты, у которых установлен stretch. Factor, то их размеры устанавливаются пропорционально ему. 1. Виджеты у которых stretch. Factor==0 получают дополнительный размер только если место больше никому не требуется. В первую очередь место выделяется виджетам со стратегией Expanding. 4. Если размер виджета меньше минимального, то ему выделяется его минимальный размер. 5. Если размер виджета больше максимального, то размер уменьшается до максимального. 3.