Создание промежутков между виджетами |
Создание приложения |
В этом разделе описывается создание макета формы. Если вы, включив предварительный просмотр формы (Ctrl+T), измените размер окна, то увидите, что все виджеты не изменяют размер и остаются на своих местах. Поэтому нам нужно использовать такую возможность Qt, как "распорки" (spacers). Распорки — это как бы пружины, отталкивающие виджеты друг от друга.
Научиться использовать распорки и управлять макетом можно только путем проб и ошибок. Главное — помнить, что при работе с распорками их нужно расставлять сначала горизонтально, и только потом — вертикально.
Для начала мы используем распорки для центрирования верхней надписи. Измените размер надписи так, чтобы она занимала как можно меньше места, но при этом полностью вмещала текст. Добавьте две распорки, по одной с каждого края. Для этого нажмите значок с нарисованной на нем пружиной или выберите пункт меню Layout => Add Spacer. Щелкните по пустому месту слева от надписи и выберите Horizontally. Появится синяя распорка (см. рис. 14). Повторите ту же операцию справа от надписи. Затем добавьте распорку справа от надписи 'Generated Signature' и еще одну справа от кнопки 'Create!'.
Рис. 14: Добавление распорок
Теперь, когда мы заполнили пустое место распорками, нам нужно создать макет, который позволит виджетам изменять свой размер при изменении размеров формы. Создание хорошего макета — важный этап разработки программы. Опять же, попробуйте несколько раз изменить размер формы, чтобы проверить, все ли в порядке. Мы можем использовать вертикальную или горизонтальную ориентацию, а также привязку к сетке. Верхний ряд виджетов расположен горизонтально (распорка + надпись + распорка), поэтому тут нужно применить горизонтальную ориентацию. Выделите одновременно три виджета: щелкните на первой распорке, затем, удерживая клавишу Shift, щелкните по надписи и затем на второй распорке. Нажмите кнопку Horizontal Layout на панели инструментов или выберите пункт меню Layout => Lay Out Horizontally. Вокруг трех выбранных объектов появится красная линия, показывающая, что объекты были объединены в макет. При необходимости вы можете изменить размер красного прямоугольника.
Теперь мы можем повторить эту операцию для трех надписей внутри виджета GroupBox (на этот раз используя вертикальную ориентацию), и для двух полей ввода и выпадающего списка. В данном случае лучше использовать вертикальную ориентацию, чтобы объекты были выровнены. Если бы мы использовали горизонтальную ориентацию для каждой надписи и поля ввода, их размер и положение изменялись бы неправильно. Для надписи 'Generated Signature' и распорки, а также для двух кнопок и распорки между ними требуется горизонтальная ориентация.
Наконец, нам нужно поместить все элементы управления в сетку (grid). Щелкните правой кнопкой по форме и выберите "Lay Out in a Grid". Результат изображен на рис. 15.
Добавление виджетов |
Сигналы и слоты |